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

php convertir json en objet tableau

PHPz
PHPzoriginal
2023-05-11 09:37:36434parcourir

Dans le développement Web, cela implique souvent de soumettre des données au format JSON de la page front-end au back-end, puis de convertir les données en un tableau ou une forme d'objet pouvant être exploité par PHP. Cet article explique comment utiliser PHP pour convertir des données JSON en objets tableau.

JSON est un format d'échange de données léger avec une structure claire et facile à lire et à écrire. PHP dispose de fonctions de traitement JSON intégrées, qui peuvent facilement convertir JSON en tableau ou sous forme d'objet.

Supposons que nous ayons les données JSON suivantes :

{
    "name": "Tom",
    "age": 20,
    "address": {
        "province": "Guangdong",
        "city": "Guangzhou"
    },
    "hobbies": [
        "reading",
        "swimming"
    ]
}

Utilisez la fonction json_decode() de PHP pour la convertir en un objet tableau. L'utilisation de la fonction est la suivante : json_decode()函数可以将其转化为数组对象。函数的用法如下:

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

参数说明:

  • $json:需要解码的JSON字符串。
  • $assoc(可选):当该参数为真时,将返回数组形式,为假时返回对象形式。默认为假。
  • $depth(可选):设置解析JSON数据的最大深度。默认为512,超出范围将返回null。
  • $options(可选):设置JSON解码器的选项,如JSON_BIGINT_AS_STRING可以将大整数视为字符串返回。

代码示例:

$jsonStr = '{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Guangzhou" }, "hobbies": [ "reading", "swimming" ] }';

$array = json_decode($jsonStr, true);

print_r($array);

输出结果:

Array
(
    [name] => Tom
    [age] => 20
    [address] => Array
        (
            [province] => Guangdong
            [city] => Guangzhou
        )

    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
        )
)

可以看到,json_decode()函数将JSON字符串转化为了PHP数组对象。

如果要将JSON数据转化为PHP对象形式,可以去掉函数中的第二个参数或将其设置为false。

除了将JSON数据转化为数组或对象形式,PHP还可以将数组或对象形式的数据编码为JSON字符串。这可以使用PHP的json_encode()

string json_encode(mixed $value[, int $options = 0[, int $depth = 512]])

Description du paramètre :

    $json : chaîne JSON qui doit être décodée.
  • $assoc (facultatif) : Lorsque ce paramètre est vrai, il sera renvoyé sous forme de tableau, et lorsqu'il est faux, il sera renvoyé sous forme d'objet. La valeur par défaut est false.
  • $profondeur (facultatif) : définissez la profondeur maximale d'analyse des données JSON. La valeur par défaut est 512 et null sera renvoyé s'il est hors plage.
  • $options (facultatif) : définissez les options du décodeur JSON, telles que JSON_BIGINT_AS_STRING, qui peuvent renvoyer de grands entiers sous forme de chaînes.

Exemple de code :

$array = array(
    'name' => 'Tom',
    'age' => 20,
    'address' => array(
        'province' => 'Guangdong',
        'city' => 'Guangzhou'
    ),
    'hobbies' => array(
        'reading',
        'swimming'
    )
);

$jsonStr = json_encode($array, JSON_PRETTY_PRINT);

echo $jsonStr;

Résultat de sortie :

{
    "name": "Tom",
    "age": 20,
    "address": {
        "province": "Guangdong",
        "city": "Guangzhou"
    },
    "hobbies": [
        "reading",
        "swimming"
    ]
}

Vous pouvez voir, json_decode() La fonction convertit une chaîne JSON en un objet tableau PHP. #🎜🎜##🎜🎜#Si vous souhaitez convertir des données JSON sous forme d'objet PHP, vous pouvez supprimer le deuxième paramètre de la fonction ou le définir sur false. #🎜🎜##🎜🎜#En plus de convertir des données JSON sous forme de tableau ou d'objet, PHP peut également encoder des données sous forme de tableau ou d'objet en chaîne JSON. Ceci peut être réalisé en utilisant la fonction json_encode() de PHP. L'utilisation de la fonction est la suivante : #🎜🎜#rrreee#🎜🎜#Description du paramètre : #🎜🎜##🎜🎜##🎜🎜#$value : la valeur qui doit être codée sous forme de chaîne JSON. #🎜🎜##🎜🎜#$options (facultatif) : la définition des options de l'encodeur JSON, telles que JSON_PRETTY_PRINT, peut rendre la chaîne JSON encodée plus facile à lire. #🎜🎜##🎜🎜#$profondeur (facultatif) : définissez la profondeur maximale des données JSON encodées. La valeur par défaut est 512 et une chaîne vide sera renvoyée si elle dépasse la plage. #🎜🎜##🎜🎜##🎜🎜#Exemple de code : #🎜🎜#rrreee#🎜🎜#Résultat de sortie : #🎜🎜#rrreee#🎜🎜#Dans le développement réel, la technologie AJAX est souvent utilisée pour les serveurs back-end Soumettez les données JSON et convertissez-les sous une forme exploitable via PHP. La maîtrise des fonctions PHP liées à JSON ci-dessus facilitera le traitement des données JSON. #🎜🎜#

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