Maison > Article > développement back-end > Conversion d'un tableau PHP en JSON : FAQ
En PHP, vous pouvez convertir entre tableaux et JSON en suivant ces étapes : Convertir un tableau en JSON : utilisez la fonction json_encode(). Convertir JSON en tableau : utilisez la fonction json_decode(), en spécifiant le vrai argument pour renvoyer un tableau. Gestion des caractères spéciaux : json_encode() échappera automatiquement les caractères spéciaux, mais vous devez toujours faire attention après un échappement manuel. Gestion des caractères Unicode : utilisez l'indicateur JSON_UNESCAPED_UNICODE pour activer l'échappement Unicode. Gestion des références circulaires : l'activation de l'indicateur JSON_PARTIAL_OUTPUT_ON_ERROR permet de renvoyer une sortie JSON partielle lorsqu'une référence circulaire est rencontrée.
Conversion de tableaux PHP en JSON : FAQ
En PHP, les tableaux et JSON (JavaScript Object Notation) sont deux structures de données courantes qui sont largement utilisées pour stocker et transférer des données. Dans cet article, nous explorerons les problèmes complexes courants lors de la conversion entre des tableaux et JSON et fournirons des exemples de code pour illustrer les solutions.
Question 1 : Convertir un tableau en JSON
Code :
$array = ['name' => 'John Doe', 'age' => 30]; $json = json_encode($array);
Question 2 : Convertir un JSON en tableau
Code :
$json = '{"name": "John Doe", "age": 30}'; $array = json_decode($json, true);
Remarque : Si vrai est omis, <code>json_decode
renverra un objet au lieu d'un tableau. true
参数省略,则 json_decode
将返回一个对象,而不是数组。
问题 3:处理特殊字符
PHP 中的特殊字符(如引号、反斜杠)在 JSON 中需要进行转义。json_encode
函数自动执行此转换,但如果在转换前对数组手动进行转义则需要注意。
代码:
$array = ['name' => 'John"Doe']; $json = json_encode($array); // 结果:{"name": "John\"Doe"}
问题 4:处理 Unicode 字符
Unicode 字符在 JSON 中需要使用十六进制转义序列表示。json_encode
函数默认不会执行此转换。要启用 Unicode 转义,请使用 JSON_UNESCAPED_UNICODE
标志。
代码:
$array = ['name' => '王小明']; $json = json_encode($array, JSON_UNESCAPED_UNICODE); // 结果:{"name": "\u738b\u5c0f\u660e"}
问题 5:处理循环引用
嵌套数据结构中的循环引用会导致 JSON 转换失败。要解决此问题,可以启用 JSON_PARTIAL_OUTPUT_ON_ERROR
标志,使 json_encode
Question 3 : Gestion des caractères spéciaux
Les caractères spéciaux (tels que les guillemets, les barres obliques inverses) en PHP doivent être échappés en JSON. La fonctionjson_encode
effectue cette conversion automatiquement, mais vous devez être prudent si vous échappez manuellement le tableau avant la conversion. Code :
$array = ['name' => 'John Doe']; $array['self'] = &$array; $json = json_encode($array, JSON_PARTIAL_OUTPUT_ON_ERROR); // 仅输出部分 JSON 数据🎜Question 4 : Gestion des caractères Unicode 🎜🎜🎜Les caractères Unicode doivent être représentés en JSON à l'aide de séquences d'échappement hexadécimales. La fonction
json_encode
n'effectue pas cette conversion par défaut. Pour activer l'échappement Unicode, utilisez l'indicateur JSON_UNESCAPED_UNICODE
. 🎜🎜🎜Code : 🎜🎜<?php $user = ['name' => 'John Doe', 'age' => 30, 'address' => '123 Main Street']; $json = json_encode($user); ?> <html> <head><title>用户信息</title></head> <body> <h1><?php echo $user['name']; ?></h1> <p>年龄:<?php echo $user['age']; ?></p> <p>地址:<?php echo $user['address']; ?></p> </body> </html>🎜🎜 Problème 5 : Gestion des références circulaires 🎜🎜🎜Les références circulaires dans les structures de données imbriquées peuvent entraîner l'échec de la conversion JSON. Pour résoudre ce problème, vous pouvez activer l'indicateur
JSON_PARTIAL_OUTPUT_ON_ERROR
afin que json_encode
renvoie une sortie JSON partielle lorsqu'une référence circulaire est rencontrée. 🎜🎜🎜Code :🎜🎜rrreee🎜🎜Cas pratique🎜🎜🎜Ce qui suit est un cas pratique de conversion des informations utilisateur d'un tableau PHP en JSON et de leur affichage dans une page HTML :🎜rrreeeCe 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!