Maison  >  Article  >  développement back-end  >  Comment PHP analyse les données JSON

Comment PHP analyse les données JSON

PHPz
PHPzoriginal
2023-04-20 10:15:092923parcourir

JSON (JavaScript Object Notation) est un format léger d'échange de données. Il utilise du texte lisible par l'homme pour transférer et stocker des objets de données. Contrairement à XML, JSON est plus facile à analyser et à traiter, il est donc souvent utilisé lors du transfert et de l'échange de données entre des applications Web et des serveurs.

En PHP, vous pouvez utiliser la fonction json_decode intégrée pour convertir une chaîne JSON en un objet PHP. Par exemple, l'exemple suivant analyse une chaîne JSON en un objet PHP :

<?php
$json_string = &#39;{"name":"John", "age":30, "city":"New York"}&#39;;
 
$obj = json_decode($json_string);
 
echo $obj->name; //输出 John
echo $obj->age; //输出 30
echo $obj->city; //输出 New York
?>

Cette fonction accepte deux paramètres : la chaîne JSON à analyser et une variable booléenne indiquant de convertir l'objet JSON analysé en un objet PHP (par défaut, false) ou tableau associatif (vrai).

Cependant, si les données JSON contiennent un tableau d'objets ou un tableau d'objets, elles devront être traitées à l'aide d'une fonction récursive. Voici un exemple où les données JSON contiennent des tableaux d'objets imbriqués et des tableaux d'objets :

{
    "employees": [
        {
            "name": "John Doe",
            "email": "john@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-1234"
                },
                {
                    "type": "work",
                    "number": "555-555-5678"
                }
            ]
        },
        {
            "name": "Jane Smith",
            "email": "jane@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-4321"
                },
                {
                    "type": "work",
                    "number": "555-555-8765"
                }
            ]
        }
    ]
}

Pour analyser ces données, vous pouvez écrire une fonction récursive qui parcourt l'intégralité de l'objet JSON et le convertit en un objet ou un tableau PHP. Voici un exemple de fonction qui gère les tableaux d'objets JSON, les tableaux d'objets et les objets JSON standard :

 $value) {
        if (is_object($value)) {
            $result[$key] = json_to_array($value);
        } else if (is_array($value)) {
            $result[$key] = [];
 
            foreach ($value as $item) {
                $result[$key][] = json_to_array($item);
            }
        } else {
            $result[$key] = $value;
        }
    }
 
    return $result;
}
 
$json_string = '{
    "employees": [
        {
            "name": "John Doe",
            "email": "john@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-1234"
                },
                {
                    "type": "work",
                    "number": "555-555-5678"
                }
            ]
        },
        {
            "name": "Jane Smith",
            "email": "jane@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-4321"
                },
                {
                    "type": "work",
                    "number": "555-555-8765"
                }
            ]
        }
    ]
}';
 
$obj = json_decode($json_string);
$array = json_to_array($obj);
 
print_r($array);
?>

Cette fonction renverra un tableau PHP contenant les données JSON pour tous les tableaux d'objets et objets imbriqués.

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:
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