PHP中如何读取JSON解码后的数组?正确访问语法咨询
如何正确访问json_decode返回的关联数组?
嘿,刚学PHP的话很容易搞混数组和对象的访问方式,我来帮你理清楚!
你现在用的是json_decode($MyJSON, true),这里的第二个参数true告诉PHP要把JSON解码成关联数组,而不是PHP对象。所以你不能用对象的->访问符号,得用数组的方括号[]语法来取值。
正确的数组访问语法
直接用数组键名的方式层层访问:
// 你的$JSON是关联数组,所以用[]访问 echo $JSON['test'][0]['predicate']['val'];
如果想用->访问怎么办?
要是你更习惯用对象的->语法,只需要去掉json_decode的第二个参数(或者把它设为false,这是默认值),这样解码后会返回一个stdClass对象,这时候你原来的写法就完全生效了:
// 不传递第二个参数,返回对象 $JSON = json_decode($MyJSON); // 现在可以用->访问 echo $JSON->test[0]->predicate->val;
快速区分两种方式
- 当
json_decode($json, true):返回关联数组,用$arr['key']访问 - 当
json_decode($json)(或json_decode($json, false)):返回对象,用$obj->key访问
内容的提问来源于stack exchange,提问作者Shez Ratnani
相关产品推荐
相关产品推荐

