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

Comment convertir json en tableau en php

PHPz
PHPzoriginal
2023-04-20 13:52:43476parcourir

Dans le développement Web, JSON (JavaScript Object Notation) est un format d'échange de données couramment utilisé. En PHP, vous pouvez facilement convertir des données au format JSON en un tableau PHP à l'aide de la fonction json_decode().

Utilisez la fonction json_decode() pour convertir JSON en tableau PHP

Utilisez la fonction json_decode() en PHP pour convertir les données au format JSON en tableau La syntaxe de cette fonction est : json_decode()函数将JSON格式的数据转换成数组,该函数的语法为:

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

参数说明:

  1. json:待解码的JSON字符串。
  2. assoc:当该参数为true时,将返回数组形式的对象,而不是默认的对象形式。
  3. depth:指定最大解析深度。默认值为512。
  4. options:用于控制解析行为的选项,包括JSON_BIGINT_AS_STRING、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、JSON_OBJECT_AS_ARRAY、JSON_THROW_ON_ERROR。默认值为0。

下面是一个将JSON转换成PHP数组的示例代码:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 输出转换后的PHP数组
print_r($arr);
?>

输出结果为:

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

在上面的代码中,首先定义了一个JSON字符串,然后使用json_decode()函数将JSON字符串转换成PHP数组,最后通过print_r()函数输出转换后的PHP数组。

如果你不需要将JSON转换成PHP数组形式,而是保留为JSON对象形式,那么可以省略json_decode()函数中的第二个参数。示例代码如下:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成JSON对象
$obj = json_decode($json_str);

// 输出转换后的JSON对象
print_r($obj);
?>

输出结果为:

stdClass Object
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

在上面的代码中,json_decode()函数中没有传入第二个参数,因此转换后得到的结果为JSON对象形式,而不是数组形式。

使用json_last_error()函数检查JSON解码的错误

在使用json_decode()函数解码JSON时,如果JSON字符串格式不正确,解码过程可能会产生错误。此时可以使用json_last_error()函数检查JSON解码的错误。该函数的语法为:

int json_last_error ( void )

下面是一个检查JSON解码错误的示例代码:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":"18", "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 检查解码是否出错
if (json_last_error() != JSON_ERROR_NONE) {
    echo &#39;JSON decode error: &#39; . json_last_error_msg();
} else {
    print_r($arr);
}
?>

在上面的代码中,由于age属性的值是一个字符串而不是一个数字,因此无法将JSON字符串正确地转换成PHP数组。在检查解码过程中,发现存在JSON解码错误,于是通过json_last_error_msg()函数输出错误信息。输出结果为:

JSON decode error: Malformed UTF-8 characters, possibly incorrectly encoded

总结

本篇文章介绍了如何在PHP中使用json_decode()函数将JSON格式的数据转换成PHP数组,以及如何使用json_last_error()rrreee.

Description du paramètre :🎜
  1. json : Chaîne JSON à décoder.
  2. assoc : Lorsque ce paramètre est vrai, un objet sous forme de tableau sera renvoyé à la place de la forme d'objet par défaut.
  3. Profondeur : spécifie la profondeur d'analyse maximale. La valeur par défaut est 512.
  4. options : options de contrôle du comportement d'analyse, notamment JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. La valeur par défaut est 0.
🎜Ce qui suit est un exemple de code pour convertir JSON en tableau PHP :🎜rrreee🎜Le résultat de sortie est :🎜rrreee🎜Dans le code ci-dessus, une chaîne JSON est d'abord définie, puis json_decode() convertit la chaîne JSON en un tableau PHP et génère finalement le tableau PHP converti via la fonction print_r(). 🎜🎜Si vous n'avez pas besoin de convertir JSON en forme de tableau PHP, mais de le conserver sous forme d'objet JSON, vous pouvez omettre le deuxième paramètre dans la fonction json_decode(). L'exemple de code est le suivant : 🎜rrreee🎜Le résultat de sortie est : 🎜rrreee🎜Dans le code ci-dessus, le deuxième paramètre n'est pas passé dans la fonction json_decode(), donc le résultat après conversion est dans la forme d'un objet JSON, plutôt que sous forme de tableau. 🎜🎜Utilisez la fonction json_last_error() pour vérifier les erreurs de décodage JSON🎜🎜Lors de l'utilisation de la fonction json_decode() pour décoder JSON, si le format de chaîne JSON est incorrect, le processus de décodage peut générer des erreurs. À ce stade, vous pouvez utiliser la fonction json_last_error() pour vérifier les erreurs de décodage JSON. La syntaxe de cette fonction est : 🎜rrreee🎜 Voici un exemple de code pour vérifier les erreurs de décodage JSON : 🎜rrreee🎜 Dans le code ci-dessus, puisque la valeur de l'attribut age est une chaîne et non une number, Par conséquent, la chaîne JSON ne peut pas être convertie correctement en un tableau PHP. Pendant le processus de décodage, il a été constaté qu'il y avait une erreur de décodage JSON, le message d'erreur a donc été généré via la fonction json_last_error_msg(). Le résultat de sortie est : 🎜rrreee🎜Résumé🎜🎜Cet article explique comment utiliser la fonction json_decode() en PHP pour convertir des données au format JSON en un tableau PHP, et comment utiliser json_last_error( ) La fonction vérifie les erreurs de décodage JSON. Dans le développement réel, nous devons souvent utiliser des données au format JSON pour l'échange de données, il est donc très important que les développeurs Web maîtrisent la conversion de JSON en tableaux 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!

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