Maison  >  Article  >  développement back-end  >  Comment convertir json en tableau en php

Comment convertir json en tableau en php

PHPz
PHPzoriginal
2023-04-27 09:01:051204parcourir

JSON (JavaScript Object Notation) est un format d'échange de données léger couramment utilisé pour l'interaction de données entre les applications Web. En PHP, nous avons souvent besoin de convertir des données au format JSON en tableaux pour les traiter. Cet article présentera en détail comment convertir JSON en tableau en PHP.

1. Fonction intégrée PHP json_decode()

Il existe une fonction intégrée json_decode() en PHP, qui peut convertir les chaînes au format JSON en tableaux PHP. La syntaxe de cette fonction est la suivante :

mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )

Parmi eux, le paramètre $json représente la chaîne JSON à décoder ; le paramètre $assoc vaut par défaut FALSE, indiquant qu'un objet est renvoyé à la place d'un tableau ; représente la profondeur maximale de décodage ; le paramètre $options représente les options de décodage.

Ce qui suit est un exemple simple pour convertir une chaîne JSON en tableau :

<?php
// JSON字符串
$json = &#39;{"name":"Tom","age":18,"hobbies":["reading","writing","swimming"]}&#39;;

// 将JSON字符串转换为数组
$arr = json_decode($json, true);

// 输出数组
print_r($arr);
?>

Le résultat de sortie est :

Array (
    [name] => Tom
    [age] => 18
    [hobbies] => Array (
        [0] => reading
        [1] => writing
        [2] => swimming
    )
)

2. PHP gère les erreurs d'analyse JSON

Cependant, dans le développement réel, nous rencontrons parfois des erreurs d'analyse JSON, telles que des erreurs de format, des incompatibilités de types de données, etc. À l'heure actuelle, nous pouvons le gérer des deux manières suivantes :

  1. Utilisez try-catch pour intercepter les exceptions

Vous pouvez utiliser l'instruction try-catch en PHP pour intercepter les exceptions et les gérer. Lorsque la fonction json_decode() analyse une chaîne JSON, elle lèvera une exception si le format est incorrect ou s'il y a d'autres erreurs. Nous pouvons utiliser try-catch pour intercepter ces exceptions et les gérer.

<?php
// JSON字符串
$json = &#39;{"name":"Tom","age":18,"hobbies":}&#39;; // 格式错误

// 将JSON字符串转换为数组
try {
    $arr = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
    print_r($arr);
} catch (JsonException $e) {
    echo "JSON字符串格式错误:" . $e->getMessage();
}
?>

Le résultat de sortie est : Erreur de format de chaîne JSON : erreur de syntaxe

  1. Utilisez la fonction json_last_error() pour obtenir des informations sur l'erreur

En plus de détecter les exceptions, vous pouvez également utiliser la fonction json_last_error() pour obtenir des erreurs lors de l'analyse de JSON. informations sur les chaînes. Cette fonction renvoie un entier représentant le code d'erreur de la dernière analyse JSON. Par exemple, lorsque le format de la chaîne JSON analysée est incorrect, la fonction json_last_error() renverra JSON_ERROR_SYNTAX. Nous pouvons juger si l'analyse est réussie en fonction du code d'erreur et la gérer en conséquence.

Voici un exemple :

<?php
// JSON字符串
$json = &#39;{"name":"Tom","age":18,"hobbies":}&#39;; // 格式错误

// 将JSON字符串转换为数组
$arr = json_decode($json, true);

// 判断是否解析成功
if (json_last_error() == JSON_ERROR_NONE) {
    print_r($arr);
} else {
    echo "JSON字符串格式错误:" . json_last_error_msg();
}
?>

Le résultat de sortie est : Erreur de format de chaîne JSON : erreur de syntaxe

Résumé

En PHP, nous pouvons utiliser la fonction intégrée json_decode() pour convertir une chaîne au format JSON en tableau . Si une erreur se produit lors de l'analyse d'une chaîne JSON, nous pouvons utiliser l'instruction try-catch pour intercepter l'exception ou utiliser la fonction json_last_error() pour obtenir les informations d'erreur et les traiter selon différents codes d'erreur. Cet article présente deux méthodes de gestion des erreurs, qui peuvent être choisies en fonction de la situation réelle.

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