将数据输入JSON到Array内的Object

时间:2017-10-16 12:38:40

标签: php json

我正在玩JSON。假设我在users.json中有这些数据:

{
    "users":
    [
        {
            "id": "1",
            "name": "Aegon Targaryen",
            "activation_key" :"18494810491048adcf"
        },

        {
            "id": "2",
            "name": "Jamie Lanister",
            "activation_key" : "756883"
        },

        {
            "id": "3",
            "name": "Brandon Stark",
            "activation_key" : "12984819849r94fr2"
        }
    ]
}

如何计算此“users”数组中的对象数量?我想输入另一个对象,如

{
    "id": "4",
    "name": "Arya Stark",
    "activation_key" : "2471984919edr2"
}

在最后一个对象之后,但我还没有找到办法做到这一点。

5 个答案:

答案 0 :(得分:2)

您只需使用count()

即可实现此目的
 $youJson = file_get_contents('Path');


 $data = json_decode($yourJson,true);

现在您只需获取用户count($data['users'])

即可

希望这有帮助。

答案 1 :(得分:1)

$b=json_decode(file_get_contents('users.json'), true);


echo " total number of objects = ".count($b->users);
//var_dump($b); // you can see details of $b from here

// Append the new object to users array 
$new_obj=new Stdclass();
$new_obj->id="4";
$new_obj->name="Arya Stark";
$new_obj->activation_key="2471984919edr2";

$b->users[]=$new_obj;

//var_dump($b); // you can see that the new object is added  here

取消注释var_dump行,以查看$b的完整结构。

BTW Stdclass允许您创建匿名对象

答案 2 :(得分:0)

您可以使用count计算用户数量,并使用[] =array_push

推送数据和数据
$file = 'users.json';
$data = json_decode(file_get_contents($file), true);
// count users
$countOfUsers = count($data['users']);
// add an new user
$data['users'][] = [
    'id' => $countOfUsers + 1,
    'name' => 'some name',
    'activation_key' => 'some key'
];
// write back
file_put_contents($file, json_encode($data));

答案 3 :(得分:0)

使用json_decode

像:

$data = json_decode(file_get_contents('path/to/json_file'));

然后

$users = count($data->users);

echo $users;

希望这有帮助。

答案 4 :(得分:0)

假设您已将Json文件作为$ json

读取到php

1)通过

将$ json String传递给数组
$json_array = json_decode($json);

2)统计用户

$user_count = count($json_array->user);

3)添加新用户

3.1创建一个新的使用对象

$new_user = array()
$new_user["id"] = "4";
$new_user["name"] = "Arya Stark";
$new_user["activation_key"] = "2471984919edr2”;

3.2推送到用户对象

$json_array->user[] = $new_user;