ホームページ  >  記事  >  バックエンド開発  >  PHP でネストされた JSON データを適切に解析するにはどうすればよいですか?

PHP でネストされた JSON データを適切に解析するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-16 01:15:03708ブラウズ

How to Properly Parse Nested JSON Data in PHP?

json_decode を使用した PHP での JSON オブジェクトの解析

JSON 形式の Web サービスから気象データを取得しようとすると、問題が発生する可能性があります。成功しない一般的な PHP リクエスト コード:

$url = "http://www.worldweatheronline.com/feed/weather.ashx?q=schruns,austria&format=json&num_of_days=5&key=8f2d1ea151085304102710";
$json = file_get_contents($url);
$data = json_decode($json, TRUE);
echo $data[0]->weather->weatherIconUrl[0]->value;

問題を理解するために、受信した JSON データを調べてみましょう:

{
  "data": {
    "current_condition": [...],
    "request": [...],
    "weather": [
      {
        "date": "2010-10-27",
        "precipMM": "0.0",
        "tempMaxC": "3",
        "tempMaxF": "38",
        "tempMinC": "-13",
        "tempMinF": "9",
        "weatherCode": "113",
        "weatherDesc": [{ "value": "Sunny" }],
        "weatherIconUrl": [{ "value": "http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png" }],
        "winddir16Point": "N",
        "winddirDegree": "356",
        "winddirection": "N",
        "windspeedKmph": "5",
        "windspeedMiles": "3"
      },
      ...
    ]
  }
}

天気データがネストされていることに注意してください。 「データ」オブジェクト。したがって、JSON を正しく解析するには、コードを変更する必要があります。

$url = 'http://www.worldweatheronline.com/feed/weather.ashx?q=schruns,austria&format=json&num_of_days=5&key=8f2d1ea151085304102710';
$content = file_get_contents($url);
$json = json_decode($content, true);

foreach ($json['data']['weather'] as $item) {
    print $item['date'];
    print ' - ';
    print $item['weatherDesc'][0]['value'];
    print ' - ';
    print '<img src="' . $item['weatherIconUrl'][0]['value'] . '" border="0" alt="" />';
    print '<br>';
}

json_decode の 2 番目のパラメーターを true に設定すると、配列が得られ、配列インデックスを使用してデータにアクセスできるようになります。 JSONview Firefox 拡張機能は、JSON 構造を視覚化し、解析を簡素化するのにも役立ちます。

以上がPHP でネストされた JSON データを適切に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。