-1

以下は、実行後に取得したjson配列です

$data = json_decode($response);

foreach($data[songs] as $key => $value) {
 echo $value['title']; 
}

この Illegal string offset 'songs' というエラーが表示されます。誰でも助けることができますか?

{
   "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)"
         }
      ]
   }
}
4

4 に答える 4

2

シンプルjson_decode($jsonstring)は、stdClass オブジェクトと配列の混合物を返します。文字列キーはオブジェクト プロパティであり、JSON 配列はインデックス 0 から始まる PHP 配列です。

json_decode($jsonstring, true)文字列キーを持つ配列のみを取得するために使用します。

于 2013-06-14T18:30:54.350 に答える
1

var_dump($data) を実行するだけで、間違いが明らかになります。

于 2013-06-14T18:27:56.033 に答える
1

これを試して:

foreach($data->response->songs as $song) {
    print_r($song);
}

あなたには2つの問題がありました。プロパティにアクセスしなかったこと、および結果をオブジェクトとしてresponse扱っていなかったこと。json_decode()

于 2013-06-14T18:30:43.727 に答える
0

よくわかりませんが、最初に「応答」をスローしないと、データ[「曲」]にアクセスできないと思います

于 2013-06-14T18:30:13.537 に答える