以下是我的示例JSON:
[
{
"@attributes":{
"name":"Stack Overflow Movies ",
"root":"http:\/\/www1.stackovermovies.com\/",
"id":"1",
"address":"Liverpool",
"postcode":"PZ203434"
},
"films":{
"film":[
{
"@attributes":{
"synopsis":"Description goes here.\r\n",
"poster":"http:\/\/www1.stackoverflowmovies.com\/posters\/HO00003702.jpg",
"cast":"Wayne Max",
"director":"",
"length":"125 mins",
"title":"X-Men (2016)",
"rating":"12A",
"release":"19\/11\/2016"
},
"shows":{
"show":{
"@attributes":{
"date":"Sat 19 Nov",
"time":"17:00"
}
}
}
},
我试图解码它:
变量$ feed包含上面的JSON。
我试图获取名称属性
echo $feed->'@attributes[0]'->name;
但由于@字符,这不起作用。有解决方法吗?我试着查看CDATA,但无法弄清楚它是否是正确的解决方案。
答案 0 :(得分:3)
使用json_decode($json, true)
获取数组而不是对象。然后您可以像这样访问您的字段:
$feed[0]['@attributes']['name'];
答案 1 :(得分:2)
访问它的一种方法是为对象中的键提供字符串值,如下所示:
$decoded->{'@attributes'};