Maison  >  Article  >  développement back-end  >  Chaîne PHP json en tableau d'objets

Chaîne PHP json en tableau d'objets

PHPz
PHPzoriginal
2023-05-07 15:59:08461parcourir

Lors du développement d'applications Web à l'aide de PHP, nous devons souvent convertir une chaîne JSON en un tableau ou un tableau d'objets. Étant donné que JSON est l'un des formats de données couramment utilisés dans le développement Web, la conversion de JSON en tableau ou en tableau d'objets est une opération très courante.

Dans cet article, nous présenterons comment convertir une chaîne JSON en tableau ou tableau d'objets en PHP.

  1. Convertir JSON en tableau à l'aide de la fonction json_decode

Il existe une fonction intégrée json_decode() en PHP qui peut convertir une chaîne JSON en tableau ou en tableau d'objets.

Cette fonction a deux paramètres :

(1) String JSON : chaîne JSON qui doit être convertie.

(2) Assoc booléen : La valeur par défaut est false, ce qui signifie qu'un tableau d'objets est généré. Si ce paramètre est défini sur true, un tableau associatif sera généré.

Voici un exemple simple :

<?php
// JSON字符串
$jsonStr = '{"name":"Tom", "age":30, "city":"New York"}';

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

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

Résultat de sortie :

Array
(
    [name] => Tom
    [age] => 30
    [city] => New York
)
  1. Convertir JSON en tableau d'objets

Si nous n'avons pas besoin d'un tableau associatif mais d'un tableau d'objets, nous pouvons définir le paramètre assoc sur false ou non Passez ce paramètre.

Voici un exemple :

<?php
// JSON字符串
$jsonStr = '[{"name":"Tom", "age":30}, {"name":"Jerry", "age":35}]';

// 将JSON字符串转换为对象数组
$objArr = json_decode($jsonStr);

// 输出对象数组内容
foreach($objArr as $obj) {
    echo "Name: " . $obj->name . ", Age: " . $obj->age . "\n";
}
?>

Résultat de sortie :

Name: Tom, Age: 30
Name: Jerry, Age: 35
  1. Convertir une chaîne JSON en un tableau d'objets et de tableaux imbriqués

Dans certains cas, la chaîne JSON peut contenir des objets imbriqués et un tableau, nous pouvons facilement la convertir en un tableau d'objets utilisant une fonction récursive.

Voici un exemple simple :

<?php
// JSON字符串
$jsonStr = '{"name":"Tom", "age":30, "address":{"city":"New York", "country":"USA"}, "friends":["Jerry", "Kate"]}';

// 将JSON字符串转换为对象数组
$obj = json_decode($jsonStr);

// 递归地将嵌套的对象和数组转换为对象数组
function object_to_array($obj) {
    if(is_object($obj)) $obj = (array)$obj;
    if(is_array($obj)) {
        foreach($obj as $key=>$val) {
            $obj[$key] = object_to_array($val);
        }
    }
    return $obj;
}

// 输出对象数组内容
$objArr = object_to_array($obj);
print_r($objArr);
?>

Résultat de sortie :

Array
(
    [name] => Tom
    [age] => 30
    [address] => Array
        (
            [city] => New York
            [country] => USA
        )

    [friends] => Array
        (
            [0] => Jerry
            [1] => Kate
        )

)

Résumé

Dans cet article, nous vous avons montré comment convertir une chaîne JSON en un tableau ou un tableau d'objets en PHP. Que vous convertissiez JSON en tableau à l'aide de la fonction json_decode() ou que vous convertissiez JSON en tableau d'objets, cela peut être fait très facilement et sans effort. Si la chaîne JSON contient des objets et des tableaux imbriqués, nous pouvons également utiliser des fonctions récursives pour la convertir en tableau d'objets. Lorsque nous devons utiliser des données JSON, ces techniques peuvent nous aider à simplifier notre travail de programmation et à améliorer la productivité.

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