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