Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menghuraikan Data JSON Bersarang dengan Betul dalam PHP?

Bagaimana Menghuraikan Data JSON Bersarang dengan Betul dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-16 01:15:03709semak imbas

How to Properly Parse Nested JSON Data in PHP?

Menghuraikan Objek JSON dalam PHP dengan json_decode

Apabila cuba mendapatkan semula data cuaca daripada perkhidmatan web berformat JSON, anda mungkin menghadapi cabaran. Kod permintaan PHP biasa yang tidak berjaya:

$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;

Untuk memahami isu ini, mari kita periksa data JSON yang anda terima:

{
  "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"
      },
      ...
    ]
  }
}

Perhatikan bahawa data cuaca bersarang dalam objek "data". Oleh itu, untuk menghuraikan JSON dengan betul, anda perlu mengubah suai kod anda:

$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>';
}

Menetapkan parameter kedua json_decode kepada benar memberikan anda tatasusunan, membolehkan anda mengakses data menggunakan pengindeksan tatasusunan. Sambungan JSONview Firefox juga boleh membantu menggambarkan struktur JSON dan memudahkan penghuraian.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Data JSON Bersarang dengan Betul dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn