我有一个具有以下结构的json:
{
"data":{
. . .
. . .
. . .
},
"meta":{
. . .
. . .
. . .
},
"included":[
{
. . .
. . .
},
{ . . . },
{ . . . },
{ . . . },
. . . .
{
"unwanted":{
. . .
},
"unwanted2":{ . . . },
. . . .
"wanted1":"v1"
"wanted2":{
"k1":"v2",
"k2":"v3"
},
"wanted3":[
"v4",
"v5",
"v6"
],
},
{ . . .},
. . . .
],
}
我想要的是得到所有想要的东西。现在首先我尝试输出以下内容:
$JSON = json_decode($data, true);
echo $myJSON['included'];
现在,这将输出“ array”,表明这是一个数组。然后,我尝试了:
echo $myJSON['included']['wanted1'];
其中没有显示名为“ wanted1”的索引。我想了想,因为所有想要的东西都包含在其中的第17个元素中,所以我决定这样做:
$i=1;
foreach( $myJSON['included'] as $item ){
if($i==17){
echo $item['wanted1'].PHP_EOL;
};
$i=$i+1
};
现在这也显示相同的错误。我不知道该怎么解析。我是php新手,请帮忙。
编辑: Here is a link to json file 我想要的是“ foundedOn”,“专业”,“名称”。
答案 0 :(得分:1)
如果您回显$ myJSON ['included'] [16]并得到“试图获取非对象的属性'wanted1'” 那么您实际上可以使用$ myJSON ['included'] [16] ['wanted1']
访问变量注意 如果您使用PHP json_decode($ data,true) 它将把您的数据转换成PHP数组形式