Maison > développement back-end > tutoriel php > Comment analyser correctement les données JSON imbriquées en PHP ?

Comment analyser correctement les données JSON imbriquées en PHP ?

Barbara Streisand
Libérer: 2024-11-16 01:15:03
original
821 Les gens l'ont consulté

How to Properly Parse Nested JSON Data in PHP?

Analyse d'objets JSON en PHP avec json_decode

Lorsque vous essayez de récupérer des données météorologiques à partir d'un service Web au format JSON, vous pouvez rencontrer des défis. Un code de requête PHP courant qui échoue :

$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;
Copier après la connexion

Pour comprendre le problème, examinons les données JSON que vous avez reçues :

{
  "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"
      },
      ...
    ]
  }
}
Copier après la connexion

Remarquez que les données météorologiques sont imbriquées dans l'objet "données". Par conséquent, pour analyser correctement le JSON, vous devez modifier votre code :

$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>';
}
Copier après la connexion

Définir le deuxième paramètre de json_decode sur true vous donne un tableau, vous permettant d'accéder aux données en utilisant l'indexation de tableau. L'extension JSONview Firefox peut également aider à visualiser les structures JSON et à simplifier l'analyse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal