Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php和JSON:object(stdClass)_Php_Json - Fatal编程技术网

Php和JSON:object(stdClass)

Php和JSON:object(stdClass),php,json,Php,Json,我已将JSON文件解码为变量($tmp)变量转储($tmp)提供: object(stdClass)#31 (3) { ["c"]=> int(2) ["r"]=> int(2) ["d"]=> object(stdClass)#32 (4) { ["1"]=> string(2) "un" ["2"]=> string(4) "deux" ["3

我已将JSON文件解码为变量(
$tmp
)<代码>变量转储($tmp)提供:

object(stdClass)#31 (3) {
    ["c"]=> int(2)
    ["r"]=> int(2)
    ["d"]=> object(stdClass)#32 (4) {
                ["1"]=> string(2) "un"
                ["2"]=> string(4) "deux"
                ["3"]=> string(5) "trois"
                ["4"]=> string(6) "quatre"
            }
}
我想检索例如“un”,所以我做了
$tmp->d[“1”]
,但它不起作用。我有以下错误:

Fatal error: Cannot use object of type stdClass as array in File.php on line 17
获取一个附加参数,该参数将json字符串转换为数组而不是对象

json\u解码($json\u str,true)

正如注释所指出的,json对象的
d
属性是一个对象而不是一个数组,因此您不能使用数组表示法访问它(正如您看到的,有一个错误)

我相信

$tmp->d->{'1'}
// "un"

php有一个默认函数json_encode和json_decode

$arrayOfValues = array();
$jsonString = json_encode($arrayOfValues);


使用此函数,您可以将variabled与json一起使用。

这是一种解决方法。它没有回答这个问题。为什么他要把字符串变成一个数组,当它作为一个对象完美地工作时?我可以请你不要回答明显重复的问题吗?t如果你浏览一下谷歌的搜索结果(至少对我来说是这样,但我相信你不会有太大的不同),那么关于这个错误信息的内容已经太多了。相反,为什么不建议以重复的方式结束这个问题呢?如果你想对OP特别有帮助,你也可以通过评论留下一些指导。可能的重复
$arrayOfValues = json_decode($jsonString);