Maison > interface Web > js tutoriel > Pourquoi jQuery.parseJSON génère-t-il une erreur « JSON invalide » lorsque des guillemets simples échappés sont présents ?

Pourquoi jQuery.parseJSON génère-t-il une erreur « JSON invalide » lorsque des guillemets simples échappés sont présents ?

DDD
Libérer: 2024-10-29 06:50:30
original
731 Les gens l'ont consulté

Why Does jQuery.parseJSON Throw

jQuery.parseJSON renvoie une erreur "JSON invalide" en raison d'un guillemet unique échappé dans JSON

Problème :
Lors de l'utilisation de jQuery.post() pour récupérer des objets JSON à partir d'un serveur, l'analyse échoue si l'une des valeurs contient un guillemet simple échappé ('). Cela se produit même si la chaîne JSON est par ailleurs valide.

Raison :
Selon la spécification JSON, seuls les guillemets doubles échappés sont autorisés dans les chaînes, pas les guillemets simples. Les guillemets simples n'ont pas besoin d'être échappés conformément à la norme JSON.

Mise à jour :
Lors d'une discussion sur JSON dans "JavaScript : The Good Parts", Douglas Crockford, le créateur de JSON, a expliqué que la décision de n'autoriser que les guillemets doubles échappés a été prise pour simplifier l'interopérabilité. En exigeant l'utilisation de guillemets doubles uniquement, il élimine le risque de confusion et de terminaison accidentelle des chaînes.

Implications :
Cela signifie qu'il est impossible d'utiliser un guillemet simple dans une chaîne JSON pour terminer la chaîne par inadvertance. Par conséquent, l'échappement des guillemets simples n'est pas nécessaire dans la spécification JSON formelle.

Considérations sur la mise en œuvre :
Bien que la spécification JSON n'autorise pas les guillemets simples échappés, les implémentations bazı, telles que org .json pour Java, sont plus indulgents et permettent leur utilisation. Cependant, il est essentiel de noter que ce n'est pas la norme et que de nombreuses implémentations populaires, y compris celle utilisée par jQuery, adhèrent strictement à la spécification JSON officielle et rejettent les JSON contenant des chaînes entre guillemets simples et/ou des guillemets simples échappés.

Comportement jQuery.parseJSON :
jQuery.parseJSON s'appuie sur l'analyseur JSON sous-jacent fourni par le navigateur ou sur une bibliothèque chargée comme json2.js. Étant donné que ces implémentations sont généralement conformes à la spécification JSON, elles n'autorisent pas les guillemets simples échappés, et donc jQuery non plus.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal