Maison > développement back-end > Problème PHP > Comment PHP analyse les données JSON

Comment PHP analyse les données JSON

PHPz
Libérer: 2023-04-20 10:23:39
original
2993 Les gens l'ont consulté

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

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

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

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal