Bagaimana Menghuraikan Data JSON Bersarang dengan Betul dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-16 01:15:03
asal
709 orang telah melayarinya

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;
Salin selepas log masuk

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"
      },
      ...
    ]
  }
}
Salin selepas log masuk

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>';
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan