Php和JSON:object(stdClass)
我已将JSON文件解码为变量(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
$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);