【问题标题】:Adding a new key value pair to a JSON object where key has a random ID [duplicate]将新的键值对添加到键具有随机 ID 的 JSON 对象 [重复]
【发布时间】:2013-04-04 23:51:24
【问题描述】:

我基本上知道如何通过 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

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

抱歉重复了

【问题讨论】:

    标签: php json object


    【解决方案1】:

    这就是你想要的:

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

    该功能称为variable properties。它允许您使用字符串和变量从 PHP 中的对象分配和获取属性。

    【讨论】:

    • 谢谢!你每天都能学到新东西(:
    【解决方案2】:

    你可以使用

    $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
            )
    
    )
    

    【讨论】:

    • 谢谢!你每天都能学到新东西(:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2016-02-24
    • 2019-11-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多