Avec le développement continu de la technologie Internet, l'interaction des données est devenue un élément important du développement d'applications Internet. Dans le développement Web, « l’interaction des données » est particulièrement importante. La conversion du format de données est également fréquemment utilisée dans le développement d'applications Web.
Dans l'interaction de données, JSON est un format de données très populaire grâce auquel des objets ou des tableaux de données peuvent être transmis à des sites Web ou à des applications. PHP est un langage de script interprété fortement typé Comparé à d'autres langages, PHP est plus pratique à analyser et à utiliser le format JSON. Dans le développement PHP, il est également très courant de convertir une chaîne au format JSON en un tableau ou un objet. Ensuite, cet article expliquera comment convertir rapidement des objets JSON en tableaux ou tableaux d'objets.
JSON est l'abréviation de JavaScript Object Notation, qui est un format d'échange de données léger. JSON est un langage d'échange de données. Il s'agit d'une structure de paires clé-valeur qui utilise du texte lisible par l'homme pour transmettre des données.
Ce qui suit est un exemple JSON simple.
{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }
Les données au format JSON sont entourées d'accolades et les données existent sous la forme de paires clé-valeur, séparées par des deux-points. Pour un objet JSON, sa clé doit être une chaîne, avec des paires clé-valeur séparées par des virgules. Dans l'exemple ci-dessus, name
, age
et address
sont trois clés, et les valeurs correspondantes sont "bob" code> code>, <code>25
et un autre objet JSON. name
,age
和 address
是三个键,对应的值分别是 "bob"
,25
和另外一个JSON对象。
PHP提供了两个内置的函数用于解析JSON字符串:json_encode()
和json_decode()
。
json_encode()
:将PHP数组或对象转换为JSON字符串。json_decode()
:将JSON格式的字符串转换成PHP数组或对象。下面的示例展示了如何使用json_encode()
来将一个PHP数组转换成JSON格式的字符串。
$myArr = array('name' => 'Bob', 'age' => 25, 'address' => array('city' => 'beijing', 'province' => 'BJ')); $jsonStr = json_encode($myArr); echo $jsonStr; // 输出 {"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}
同样,我们可以使用json_decode()
函数将JSON格式字符串转换为PHP数组。
$jsonStr = '{"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}'; $myArr = json_decode($jsonStr, true); print_r($myArr); // Array ( [name] => Bob [age] => 25 [address] => Array ( [city] => beijing [province] => BJ ) )
可以发现,json_decode()
函数的返回值是一个PHP数组。如果你想要的是一个PHP对象,可以省略第二个参数,这个时候返回的是PHP对象。如下所示:
$jsonStr = '{"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}'; $myObj = json_decode($jsonStr); echo $myObj->name; // 输出 Bob echo $myObj->address->province; // 输出 BJ
接下来,本文将介绍如何将一个JSON对象转化成PHP数组或对象数组。
上面我们已经介绍了如何将JSON格式的字符串转为PHP数组。但是有时候我们会从外部传进来一个JSON对象,需要将它转换成PHP数组才能更方便地进行处理。下面介绍几种常见的方式来实现JSON对象转为PHP数组。
json_decode()
使用 json_decode()
函数同样可以解决这个问题,但是需要传入第二个参数。
$jsonStr = '{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }'; $jsonObj = json_decode($jsonStr, true); print_r($jsonObj);
输出结果:
Array ( [name] => bob [age] => 25 [address] => Array ( [city] => beijing [province] => BJ ) )
在这个例子中,json_decode()
函数的第二个参数设置为 true
,表示将JSON对象转化成一个PHP数组。
PHP中有一种强制类型转换的方式:将一个对象强制转换成数组。使用这种方式,可以将一个JSON对象快速转换成PHP数组。
$jsonStr = '{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }'; $jsonObj = json_decode($jsonStr); $jsonArr = (array)$jsonObj; print_r($jsonArr);
输出结果:
Array ( [name] => bob [age] => 25 [address] => stdClass Object ( [city] => beijing [province] => BJ ) )
需要注意的是,使用强制类型转换方式时需要注意将输出结果中的stdClass
对象转化成PHP数组。此时可以使用循环递归的方式解决该问题。为了避免该问题,一般建议使用 json_decode()
函数将JSON对象转化成PHP数组。
我们也可以将JSON对象转换成PHP对象数组。在PHP开发中,实际上更常见的是将一个JSON数组转换成PHP对象数组。下面介绍两种常见的方式来实现JSON对象转为对象数组。
json_decode()
可以通过json_decode()
和循环递归的方式实现JSON对象转为PHP对象数组。
$jsonStr = '{ "name": "Bob", "age": 25, "address": {"city": "beijing", "province": "BJ"} }'; $jsonObj = json_decode($jsonStr); $objArr = array(); foreach ($jsonObj as $key => $value) { if (is_object($value)) { $objArr[$key] = $this->getJSONObj($value); } else if (is_array($value)) { $arr = array(); foreach ($value as $item) { if (is_object($item)) { array_push($arr, $this->getJSONObj($item)); } else { array_push($arr, $item); } } $objArr[$key] = $arr; } else { $objArr[$key] = $value; } } var_dump($objArr);
这里的 getJSONObj()
函数将JSON对象转化成PHP 对象数组并返回。
除了循环递归的方式,我们也可以使用 array_map()
函数和匿名函数来实现JSON对象转化成PHP对象数组,代码如下所示:
$jsonStr = '{ "name": "Bob", "age": 25, "address": {"city": "beijing", "province": "BJ"} }'; $jsonObj = json_decode($jsonStr); $objArr = (array)$jsonObj; $objArr = array_map(function ($item) { if (is_object($item)) { return $this->getJSONObj($item); } elseif (is_array($item)) { return array_map(function ($sub_item) { return (is_object($sub_item)) ? $this->getJSONObj($sub_item) : $sub_item; }, $item); } else { return $item; } }, $objArr); var_dump($objArr);
以上是将JSON对象转为对象数组的两种常见方式,每一种方式都可以根据自己的需求来灵活运用。
本文介绍了如何将JSON格式的数据转换成PHP数组或对象数组。对于PHP开发中JSON格式和数组之间的转换,json_encode()
和json_decode()
json_encode()
et json_decode()
. 🎜json_encode()
: convertit un tableau ou un objet PHP en chaîne JSON. json_decode()
: convertit une chaîne au format JSON en un tableau ou un objet PHP. json_encode()
pour convertir un tableau PHP en une chaîne au format JSON. 🎜rrreee🎜De même, nous pouvons utiliser la fonction json_decode()
pour convertir une chaîne au format JSON en un tableau PHP. 🎜rrreee🎜Vous pouvez constater que la valeur de retour de la fonction json_decode()
est un tableau PHP. Si vous voulez un objet PHP, vous pouvez omettre le deuxième paramètre et l'objet PHP sera renvoyé. Comme indiqué ci-dessous : 🎜rrreee🎜 Ensuite, cet article présentera comment convertir un objet JSON en un tableau PHP ou un tableau d'objets. 🎜🎜Convertir un objet JSON en tableau🎜🎜Nous avons déjà présenté ci-dessus comment convertir une chaîne au format JSON en un tableau PHP. Mais parfois, nous transmettrons un objet JSON de l'extérieur et devrons le convertir en un tableau PHP pour un traitement plus facile. Voici plusieurs façons courantes de convertir des objets JSON en tableaux PHP. 🎜json_decode()
json_decode()
peut également résoudre ce problème, mais vous devez transmettre le deuxième paramètre. . 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜Dans cet exemple, le deuxième paramètre de la fonction json_decode()
est défini sur true
, ce qui signifie convertir l'objet JSON en PHP tableau . 🎜stdClass
dans le résultat de sortie en un tableau PHP. À ce stade, le problème peut être résolu en utilisant la récursion de boucle. Afin d'éviter ce problème, il est généralement recommandé d'utiliser la fonction json_decode()
pour convertir l'objet JSON en tableau PHP. 🎜🎜Convertir un objet JSON en tableau d'objets🎜🎜Nous pouvons également convertir un objet JSON en tableau d'objets PHP. Dans le développement PHP, il est en fait plus courant de convertir un tableau JSON en un tableau d'objets PHP. Voici deux manières courantes de convertir des objets JSON en tableaux d'objets. 🎜json_decode()
json_decode()
et la récursion de boucle. 🎜rrreee🎜La fonction getJSONObj()
convertit ici l'objet JSON en un tableau d'objets PHP et le renvoie. 🎜array_map()
et des fonctions anonymes pour convertir des objets JSON en Tableaux d'objets PHP. Le code est le suivant : 🎜rrreee🎜Il existe deux manières courantes ci-dessus de convertir des objets JSON en tableaux d'objets. Chaque méthode peut être utilisée de manière flexible en fonction de vos propres besoins. 🎜🎜Résumé🎜🎜Cet article explique comment convertir des données au format JSON en un tableau PHP ou un tableau d'objets. Pour la conversion entre le format JSON et les tableaux dans le développement PHP, les fonctions json_encode()
et json_decode()
sont des outils très utiles. Il existe de nombreuses méthodes parmi lesquelles choisir pour convertir des objets JSON en tableaux PHP ou en tableaux d'objets. Les lecteurs peuvent choisir la méthode de mise en œuvre la plus appropriée en fonction des besoins réels de développement. 🎜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!