2

これが何千回も尋ねられた場合は申し訳ありませんが、これを正しく行う方法に関する適切なチュートリアルが見つからず、Stack での検索が切り札になります。

次のようなデータを含む JSON ファイルがあります。

   {
      "store":"Store 1",
      "cat":"Categories",
      "general_cat":"Categories",
      "spec_cat":"Accessories"
   },
   {
      "store":"Store 1",
      "cat":"Categories",
      "general_cat":"Categories",
      "spec_cat":"Accessories"
   },

その中に約50のエントリがあります。このデータを解析し、値を変数に格納しようとしています。

これまでのところ、私は試しました:

$string     = file_get_contents("jsonFile.json");
$json_array = json_decode($string,true);

foreach ($json_array as $key => $value){

    $store = $key -> store;
    $general_cat = $key -> general_cat;
    $spec_cat = $key -> spec_cat;

    if (!is_null($key -> mainImg_select)){
        $cat = $key -> cat;
    }

    echo $headURL;
}

これにより、「オブジェクト以外のプロパティを取得しようとしています」というエラーが発生します。ここで何が間違っていますか?

4

3 に答える 3

4

連想配列を要求しているようですが (True を json_decode 関数の 2 番目のパラメーターとして渡すことによって)、それをオブジェクトとして使用しようとしています。

試してみてください$json_array = json_decode($string,false);。それはオブジェクトを返します

また、@MatRt が言及しているように、オブジェクトを参照するには $key の代わりに $value を使用する必要があります

于 2013-05-16T02:28:33.413 に答える
3

配列構文で値を取得する必要があります。

$item['key']

に並べて

$item->key
于 2013-05-16T02:30:19.577 に答える