2016-05-18 6 views
-1

jsonデコードデータの配列要素にアクセスしようとしています。アクセスしようとしているときにエラーが発生しています。以下は、出力されたjsonデータをデコードしたPHPコードです。Notice:非オブジェクトのプロパティを取得しようとしています-php

<?php 
. 
. 
. 

$json = $response; 
$json_output = json_decode($json, true); 
echo '<pre>'; 
print_r($json_output); 
?> 

Array 
(
    [0] => Array 
     (
      [alph_id] => 02adb5b4-d2fe-4a46-8798-1e2b876b2055 
      [name] => Michael 
      [s_id] => 1462339266273 
      [avg_at] => 12.060000419617 
      [distance] => 0 
      [sw] => OFF 
      [set_no] => 1 
      [final_at] => 18.700000762939 

     ) 

    [1] => Array 
     (
      [alph_id] => 02adb5b4-d2fe-4a46-8798-1e2b876b2055 
      [name] => John 
      [s_id] => 1462339266273 
      [avg_at] => 12.060000413454 
      [distance] => 0 
      [sw] => OFF 
      [set_no] => 1 
      [final_at] => 19.700000762939 
     ) 
     . 
     . 
     . 

alph_id要素にアクセスしようとしましたが、エラーが表示されます。

echo $json_output[0]->alph_id; 
Notice: Trying to get property of non-object 

私は正しく配列要素にアクセスすると思います。それは何が間違っていますか?

おかげで...

+6

あなたが連想配列を持っているので、 '$のjson_outputを試す[0] [ 'alph_id'] '。 –

+0

@FrayneKonok私は答えを出して、 "[0] =>配列"の "Array"と言う理由を説明することをお勧めします。 – kainaw

答えて

6

以下とインデックスにアクセスしてください第2のパラメータとしてtrueを使用することによって連想配列のためにデコードする。

したがって、$json_output[0]['alph_id']としてアクセスする必要があります。

あなたは、このようにする場合は、

$json_output = json_decode($json); 

このjson_decodeは、オブジェクトとして結果を返し、それがあるべき、

$json_output[0]->alph_id; 
1

あなたがこれを定義するときは、json_decode

json_decode($json, true); 

の2番目のパラメータで、真の使用あなたはJSONを作る構造

$json_output[0]['alph_id']; 
関連する問題