向JSON对象添加一个新的键值对,其中键具有随机ID


Adding a new key value pair to a JSON object where key has a random ID

我基本上知道如何通过PHP向JSON添加新的键值对,如:

$json->newObject = "value";

然而,我不能弄清楚的是如何给密钥对,一个随机的ID。

我试过这样做:

$id = rand(99, 9999);
$json["newObject" . $id] = "value";

错误为:Fatal error: Cannot use object of type stdClass as array in /home/methodjs/public_html/projects/chat/send.php on line 8

:

$id = rand(99, 9999);
$json->("newObject" . $id) = "value";

错误:Parse error: syntax error, unexpected '(', expecting T_STRING or T_VARIABLE or '{' or '$' in /home/methodjs/public_html/projects/chat/send.php on line 8

我希望一定有一些简单的方法可以做到这一点。谢谢你的帮助。

抱歉的DUBLICATE

这就是你想要的:

$json->{"newObject".$id} = "value";

该特性称为可变属性。它允许您在PHP中使用字符串和变量从对象中分配和获取属性。

可以使用

$json = "{}";
$json = json_decode($json);
$json->newObject = "value";
$id = rand(99, 9999);
$json->{"newObject" . $id} = "value";
$json->array = array(mt_rand(),mt_rand());
print_r($json);

输出
stdClass Object
(
    [newObject] => value
    [newObject1764] => value
    [array] => Array
        (
            [0] => 1176886102
            [1] => 1306108513
        )
)