Php json多数组解码
我有以下代码:Php json多数组解码,php,arrays,json,Php,Arrays,Json,我有以下代码: $json = ' { "HTML": [ { "id": 1, "name": "HTML", "match": false }, { "id": 2, "name": "HTML 5", "match": fals
$json = ' {
"HTML":
[
{
"id": 1,
"name": "HTML",
"match": false
},
{
"id": 2,
"name": "HTML 5",
"match": false
},
{
"id": 3,
"name": "XHTML",
"match": false
}
]
}';
$obj = json_decode($json);
$obj[0][0]->name; // JavaScript: The Definitive Guide
为什么会出现以下错误
使用stdClass类型的对象作为数组
我正确地解码了json,然后我说我想从数组中选取第一个对象(在本例中为HTML),然后我想选取数组中第一个对象的名称
出了什么问题?您的第一个JSON是对象(HTML),它包含另一个对象的数组。必须调用->HTML[0]
(这是数组中的第一个对象),然后调用->name
,这是HTML对象的参数
$obj->HTML[0]->name;
第一级数据不是JSON数组,而是JSON对象,因此PHP将其解码为
stdClass
的实例。接下来,数据的第一级是“HTML”,而不是“0”。最后,如果要强制解码将所有内容都设置为数组,请在json_decode
上将第二个参数设置为true
。第一个参数是对象,属性HTML
中是数组,然后使用[0]->name