2

PHP を使用して API から取得する JSON 応答の例として、以下を使用します。

[
   {
    "profile_background_tile": true,
    "listed_count": 82,
    "status":  {
      "created_at": "Fri Apr 20 20:06:12 +0000 2012",
      "place": null,
    },
    "default_profile": false,
    "created_at": "Tue Oct 25 00:03:17 +0000 2011"
  }
]

私はこのようなものを使用します...

$obj = json_decode($json);

foreach($obj as $index => $user) {
    echo $user->profile_background_tile;
    echo $user->listed_count;
    echo $user->status;    
    echo $user->default_profile;
    echo $user->created_at;
}

今、私が助けを必要としているのは、その下の JSON 応答にありstatusます。created_atplace

それらのアイテムにアクセスする方法がわかりませんか?

4

2 に答える 2

1

エラー

あなたJSONは無効です...

見る

"status":  {
  "created_at": "Fri Apr 20 20:06:12 0000 2012",
  "place": null,
},

そこ,"place": null あるべきではない

試す

$json = '[{"profile_background_tile": "true",
    "listed_count": 82,
    "status":  {
      "created_at": "Fri Apr 20 20:06:12 0000 2012",
      "place": null
    },
    "default_profile": false,
    "created_at": "Tue Oct 25 00:03:17 +0000 2011"
  }]';

echo "<pre>";
$obj = json_decode ( $json );
foreach ( $obj as $index => $user ) {
    echo $user->status->created_at , PHP_EOL;
    echo $user->status->place , PHP_EOL;

}

出力

 Fri Apr 20 20:06:12 0000 2012
于 2012-04-20T21:50:02.970 に答える
1

まったく同じロジックを使用しますが、より深いレベルです。

echo $user->status->created_at;
echo $user->status->place;

これが機能する理由は次のとおりです。デコードされた JSON はオブジェクトの配列です。各オブジェクトには、 のようなプロパティがあります profile_background_tile。またstatus、たまたま別のオブジェクトであるプロパティがあり、プロパティcreated_atとがありplaceます。また、構文を使用してオブジェクト プロパティにアクセスし$obj->propます。

于 2012-04-20T21:39:06.520 に答える