下面给出的是我在做完
后得到的json数组$data = json_decode($response);
foreach($data[songs] as $key => $value) {
echo $value['title'];
}
我收到一条错误,说这是非法的字符串偏移'歌曲'。有人可以帮忙吗?
{
"response":{
"status":{
"version":"4.2",
"code":0,
"message":"Success"
},
"start":0,
"total":169,
"songs":[
{
"id":"SOVZDWG13EDE8AA5F6",
"title":"Live And Let Die (Professional Backing Track)"
},
{
"id":"SOVZQDT1373E96845D",
"title":"Cival War"
},
{
"id":"SOIHVBA1373E967FC7",
"title":"Free Fallin'"
},
{
"id":"SOHTILC137377A4D5A",
"title":"PARADISE CITY (1989 Radio Edit)\/(CONTENT!)"
},
{
"id":"SOTHTHM137376FDC30",
"title":"IT'S SO EASY (CC Cleaner Edit)\/(LYRICS!)\/(CONTENT!)"
},
{
"id":"SOSGUMG137392B086C",
"title":"MR. BROWNSTONE (CC Clean)"
},
{
"id":"SOAIMVY13739563B7F",
"title":"NOVEMBER RAIN (Long Edit)"
},
{
"id":"SOHTFWB13732F1645D",
"title":"MOVE TO THE CITY (Live)\/(CC Clean)\/(CONTENT!)"
},
{
"id":"SOINGWZ137337DD251",
"title":"CIVIL WAR (CONTENT!)"
},
{
"id":"SOJMUVZ136F21B42BC",
"title":"Neurobomb"
},
{
"id":"SOXPBNG136749B5A8B",
"title":"SWEET CHILD O' MINE (Edit\/Remix)"
},
{
"id":"SOCQGYZ1366D7B44B0",
"title":"MADAGASCAR (CC Clean Edit)"
},
{
"id":"SOXHMOW1366D7B84F6",
"title":"RIAD N' THE BEDOUINS (CC Clean)"
},
{
"id":"SOFCXWC1366DBED3DA",
"title":"Nighttrain (Live)"
},
{
"id":"SORXNZT1366E397CEC",
"title":"DUST N' BONES (CC Clean)"
}
]
}
}
答案 0 :(得分:2)
简单的json_decode($jsonstring)
将返回stdClass对象和数组的混合。字符串键是对象属性,JSON数组是从索引0开始的PHP数组。
使用json_decode($jsonstring, true)
仅获取包含字符串键的数组。
答案 1 :(得分:1)
只需执行var_dump($ data),你的错误就会很明显。
答案 2 :(得分:1)
试试这个:
foreach($data->response->songs as $song) {
print_r($song);
}
你有两个问题。一个您没有访问response
属性的,并且您没有将json_decode()
的结果视为对象。
答案 3 :(得分:0)
我不确定,但我猜你不能先访问数据['songs']而不先把'响应'扔出去