La conversion des tableaux de PHP en JSON est une opération courante rencontrée dans le développement, mais certains problèmes se produiront inévitablement pendant le processus. Cet article résume plusieurs types d'erreur courants et des méthodes de débogage correspondantes pour vous aider à localiser et à résoudre rapidement les problèmes de conversion.
Lorsqu'une référence circulaire existe dans un tableau, appeler json_encode () échoue souvent sans invites d'erreur. En effet
La solution consiste à éviter les références circulaires, ou à ajouter l'option json_unescaped_slashes lors de l'appel json_encode () pour essayer d'ignorer les barres obliques échappées, atténuant ainsi ce type de problème.
$array = ['foo', ['bar' => $array]]; // Recycler la référence
$json = json_encode($array, JSON_UNESCAPED_SLASHES); // 解决Recycler la référence问题
JSON exige que la chaîne soit encodante UTF-8. Si le codage de caractères du tableau d'entrée est incorrect, le JSON généré peut sembler brouillé.
Il est recommandé de s'assurer que les fichiers PHP et les éditeurs utilisent le codage UTF-8 et utilisent l'option json_unescaped_unicode dans json_encode () , ou utilisent la fonction mb_convert_encoding () pour convertir les éléments du tableau en encodage UTF-8.
Le format JSON est strictement requis et le manque de citations ou de virgules fera échouer l'analyse.
Le format de chaîne JSON de sortie doit être soigneusement vérifié lors du débogage et le format peut être vérifié par l'outil de vérification JSON en ligne.
Supposons qu'il y ait un tableau comme suit:
$array = [
'name' => 'John Doe',
'age' => 30,
'address' => [
'street' => 'Main Street',
'city' => 'Anytown'
]
];
Code à convertir en JSON:
$json = json_encode($array, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
echo $json; // Sortir:{"name":"John Doe","age":30,"address":{"street":"Main Street","city":"Anytown"}}
Grâce aux étapes ci-dessus, les problèmes communs peuvent être élus efficacement et l'exactitude et l'intégrité des données JSON peuvent être assurées.