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.
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 )
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
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!