提问者:小点点

如何将列表添加到现有的json文件中?


我想在json文件中添加一个列表,如果该列表不存在。

但是当我尝试使用array()时,我得到了0=>; 1=>; 2=>而不是对象列表

$list = array(
    "Version" => "1.0"
);

$users = array(
    "Users" => array(
    "Username"=> "test",
    "Level"=> "10"
    )
);

if(!isset($list['Users'])) {
    array_push($list, $users);
    echo json_encode($list);
}
exit;

结果

{"Version":"1.0","0":{"Users":{"Username":"test","Level":"10"}}}

但我的结果应该是

{“version”:“1.0”,“users”:[{“username”:“test”,“level”:“10”}]}

我是PHP的新手。 关于。


共2个答案

匿名用户

如果新键users不存在,则可以添加该键,然后向其添加元素,如下所示:

$list = array(
    "Version" => "1.0"
);

$users = array(
    "Users" => array(
    "Username"=> "test",
    "Level"=> "10"
    )
);

if(!isset($list['Users'])) $list['users']=[];

foreach( $users as $a ){
    $list['users'][]=$a;
}

echo json_encode( $list );

输出:

{"Version":"1.0","users":[{"Username":"test","Level":"10"}]}

匿名用户

试试这个,

您不需要array_push()。 只需在$list中添加数组$users['users']即可。 注意:我已将array()表示法更改为[]表示法。

$list =[
    "Version" => "1.0"
];

$users = [
    'Users' => [
        'Username' => 'test',
        'Level' => '10'
    ]
];
    

if(!isset($list['Users'])) {
    $list['Users'][] = $users['Users'];
    echo json_encode($list);
}
exit;

输出:

{"Version":"1.0","Users":[{"Username":"test","Level":"10"}]}