Maison >développement back-end >Problème PHP >Comment convertir un objet json en tableau PHP

Comment convertir un objet json en tableau PHP

PHPz
PHPzoriginal
2023-04-17 11:25:03549parcourir

json est un format d'échange de données léger qui devient de plus en plus populaire. PHP est un excellent langage de programmation côté serveur, idéal pour le développement Web. Par conséquent, convertir des objets json en tableaux PHP est une compétence très utile. Dans cet article, nous apprendrons comment convertir un objet json en tableau PHP.

  1. Fonction json_decode()

La fonction json_decode() en PHP est le principal moyen de convertir une chaîne au format json en une variable PHP (tableau ou objet). La syntaxe est la suivante :

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

Description du paramètre :

  • json : chaîne json. json:json 字符串。
  • assoc:一个布尔值,指示是否将 json 对象转换为关联数组。
  • depth:整数类型,指示最大深度。默认情况下,最大深度为 512,可以使用常量 JSON_DEPTH 定义。
  • options:选项,用于更细粒度地控制解码过程。可以使用以下常量的组合:
常量 描述
JSON_BIGINT_AS_STRING 在 PHP 5.4.0 及更高版本中可用。将大于 PHP_INT_MAX 的整数转换为字符串。
JSON_INVALID_UTF8_IGNORE
JSON_INVALID_UTF8_SUBSTITUTE
在 PHP 5.3.3 及更高版本中可用。JSON_INVALID_UTF8_IGNORE 此选项将忽略非法 UTF-8 字符。JSON_INVALID_UTF8_SUBSTITUTE 此选项将使用 Unicode 替换字符来替换非法 UTF-8 字符。
JSON_OBJECT_AS_ARRAY 将 json 对象转换为关联数组。
JSON_THROW_ON_ERROR 在 PHP 7.3.0 及更高版本中可用。此常量用于自动抛出异常,而不是返回 FALSE

示例:

以下是 JSON 字符串:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York"
}

使用 json_decode() 函数将其转换为关联数组:

$json = '{"name":"John Doe","age":30,"city":"New York"}';
$arr = json_decode($json, true);

print_r($arr);

输出:

Array
(
    [name] => John Doe
    [age] => 30
    [city] => New York
)
  1. json_decode() 函数的使用注意事项
  • json_decode() 只能处理 UTF-8 编码的数据。
  • json_decode() 只支持在 PHP 中使用的数据类型,例如字符串、数字、数组和对象。
  • json_decode() 不支持特殊数据类型,如资源和回调函数。
  • json_decode() 只支持带双引号的 json 字符串。不要使用单引号或不带引号的键名。
  • 在给定 json_encode() 函数时,请使用常量 JSON_UNESCAPED_UNICODE
  • assoc : Une valeur booléenne indiquant s'il faut convertir l'objet json en un tableau associatif.
    profondeur : Type entier, indiquant la profondeur maximale. Par défaut, la profondeur maximale est de 512, qui peut être définie à l'aide de la constante JSON_DEPTH.
  1. options : options pour un contrôle plus précis du processus de décodage. Des combinaisons des constantes suivantes peuvent être utilisées :

Constante Description
JSON_BIGINT_AS_STRING Disponible en PHP 5.4.0 et supérieur. Convertit un entier supérieur à PHP_INT_MAX en chaîne.
JSON_INVALID_UTF8_IGNORE
JSON_INVALID_UTF8_SUBSTITUTE
En PHP 5.3.3 et supérieur Disponible dans . JSON_INVALID_UTF8_IGNORE Cette option ignore les caractères UTF-8 illégaux. JSON_INVALID_UTF8_SUBSTITUTE Cette option remplacera les caractères UTF-8 illégaux par des caractères de remplacement Unicode.
JSON_OBJECT_AS_ARRAY Convertir l'objet json en tableau associatif.
JSON_THROW_ON_ERROR Disponible en PHP 7.3.0 et supérieur. Cette constante est utilisée pour lever automatiquement une exception au lieu de renvoyer FALSE.
Exemple :

Ce qui suit est la chaîne JSON :
    <?php
    // 1. 定义 json 格式的字符串
    $json = &#39;{"name":"John Doe","age":30,"city":"New York"}&#39;;
    
    // 2. 将 json 格式的字符串转换为 PHP 数组
    $arr = json_decode($json, true);
    
    // 3. 输出转换后的数组
    print_r($arr);
    ?>
  1. Utilisez json_decode() le convertit en un tableau associatif :
  2. Array
    (
        [name] => John Doe
        [age] => 30
        [city] => New York
    )
Sortie :

rrreee

    json_decode() Notes sur l'utilisation de la fonction 🎜🎜🎜🎜json_decode() ne peut gérer que les données codées en UTF-8 . 🎜🎜json_decode() ne prend en charge que les types de données utilisés en PHP, tels que les chaînes, les nombres, les tableaux et les objets. 🎜🎜json_decode() ne prend pas en charge les types de données spéciaux tels que les ressources et les fonctions de rappel. 🎜🎜json_decode() ne prend en charge que les chaînes json avec des guillemets doubles. N'utilisez pas de guillemets simples ni de noms de clés sans guillemets. 🎜🎜Lorsqu'elle est donnée à la fonction json_encode(), utilisez la constante JSON_UNESCAPED_UNICODE pour vous assurer que les caractères non-ASCII sont échappés. 🎜🎜🎜🎜Exemple🎜🎜🎜Voici l'exemple complet de conversion d'une chaîne json en tableau PHP : 🎜rrreee🎜Sortie : 🎜rrreee🎜🎜Conclusion🎜🎜🎜Comme mentionné ci-dessus, nous pouvons convertir un objet json en utilisant la fonction json_decode() est un Tableau PHP. Cette technique est très utile dans le développement Web et nous aide à analyser les données JSON des appels AJAX. 🎜

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