Comment convertir des données JSON en tableau en php

PHPz
Libérer: 2023-04-24 15:26:51
original
1868 Les gens l'ont consulté

Dans le développement Web, la technologie JSON est devenue un élément indispensable et est largement utilisée dans la transmission et le stockage de données front-end et back-end. En langage PHP, nous avons souvent besoin de convertir les données JSON en tableaux pour le fonctionnement et le traitement. Cet article vous expliquera comment convertir JSON en tableau.

1. Utilisez la fonction json_decode()

En PHP, nous pouvons utiliser la fonction intégrée json_decode() pour analyser une chaîne JSON dans un tableau PHP. L'utilisation de base de cette fonction est la suivante :

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Copier après la connexion

Parmi eux, le paramètre $json représente la chaîne JSON à analyser, $assoc représente s'il faut convertir l'objet analysé en un tableau avec des noms de clés, la valeur par défaut est false et $profondeur représente la profondeur de l'analyse, la valeur par défaut est 512, $options représente les options d'analyse, la valeur par défaut est 0.

Par exemple, nous avons la chaîne JSON suivante :

{"name": "Tom", "age": 18, "hobbies": ["music", "movies"]}
Copier après la connexion

Nous pouvons la convertir en tableau via le code PHP suivant :

$json = '{"name": "Tom", "age": 18, "hobbies": ["music", "movies"]}';
$arr = json_decode($json, true);
print_r($arr);
Copier après la connexion

Le résultat de sortie est le suivant :

Array
(
    [name] => Tom
    [age] => 18
    [hobbies] => Array
        (
            [0] => music
            [1] => movies
        )

)
Copier après la connexion

2. Gérer les problèmes courants de conversion

En pratique Dans l'application, nous pouvons rencontrer le problème que certaines chaînes JSON ne peuvent pas être correctement converties en tableaux. Ensuite, nous présenterons quelques problèmes courants et leurs solutions.

  1. La chaîne JSON contient des caractères spéciaux

Par exemple, lorsque la chaîne JSON contient des caractères spéciaux tels que des guillemets simples ou des guillemets doubles, le programme signalera une erreur ou ne parviendra pas à convertir. Pour le moment, nous pouvons éviter cette situation en échappant à la chaîne. PHP fournit une fonction intégrée addlashes() pour s'échapper.

Par exemple :

$json = '{"name": "Tom\'s book", "page": "100\""}';
$json = addslashes($json);
$arr = json_decode($json, true);
print_r($arr);
Copier après la connexion

Le résultat de sortie est le suivant :

Array
(
    [name] => Tom's book
    [page] => 100"
)
Copier après la connexion
  1. La chaîne JSON contient du chinois

Lorsque la chaîne JSON contient du chinois, si elle n'est pas traitée, la conversion échouera ou sera tronquée . PHP fournit une fonction intégrée json_encode() pour convertir un tableau en chaîne JSON, et des paramètres peuvent être définis pour éviter les caractères chinois tronqués.

Par exemple :

$arr = array('name' => '张三', 'age' => 19);
$json = json_encode($arr, JSON_UNESCAPED_UNICODE);
echo $json;
Copier après la connexion

Le programme affichera les résultats suivants :

{"name":"张三","age":19}
Copier après la connexion

Lors de l'exécution d'un traitement inverse, vous devez utiliser une chaîne JSON au format d'encodage UTF-8, sinon des caractères tronqués apparaîtront également.

  1. Erreur de format de chaîne JSON

Lorsqu'un format de chaîne JSON est incorrect, la fonction json_decode() ne pourra pas analyser la chaîne correctement. À ce stade, nous devons d'abord effectuer une vérification du format sur la chaîne JSON, puis la corriger en fonction des différents types d'erreurs.

Par exemple :

$json = '[{"name": "Tom", "age": 18}, {"name": "Bob", "age":19}';
$arr = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    switch (json_last_error()) {
        case JSON_ERROR_DEPTH:
            echo 'JSON字符串超出最大剖析深度';
            break;
        case JSON_ERROR_STATE_MISMATCH:
            echo 'JSON字符串格式错误';
            break;
        case JSON_ERROR_UTF8:
            echo 'JSON字符串包含非UTF-8字符';
            break;
        default:
            echo 'JSON字符串解析失败';
            break;
    }
} else {
    print_r($arr);
}
Copier après la connexion

Le résultat de sortie est le suivant :

JSON字符串格式错误
Copier après la connexion

Ce qui précède est la méthode pour convertir JSON en tableau et les solutions à divers problèmes. J'espère que cet article pourra être utile aux développeurs PHP.

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