JQuery.parseJSON devis unique versus double devis

Quelle est la différence entre cela?

Cela fonctionne bien:

var obj1 = jQuery.parseJSON('{"orderedList": "true"}'); document.write("obj1 "+ obj1.orderedList ); 

Mais ce qui suit ne fonctionne pas:

 var obj2 = jQuery.parseJSON("{'orderedList': 'true'}"); document.write("obj2 "+ obj2.orderedList ); 

Pourquoi donc?

C'est parce que les guillemets doubles sont considérés comme standard alors que le devis unique n'est pas. Ce n'est pas vraiment spécifique à JQuery, mais il s'agit de la norme JSON . Donc, indépendamment de la trousse d'outils JS, vous devriez vous attendre à un même comportement.

Une valeur peut être une chaîne entre guillemets, ou un nombre, ou vrai ou faux ou nul, ou un objet ou un tableau. Ces structures peuvent être imbriquées.

Mettre à jour

Ou peut-être un duplicata de jQuery citation unique dans la réponse JSON

Selon la documentation de l'API, les guillemets doubles sont considérés comme des JSON valides, les guillemets simples ne le sont pas.

http://api.jquery.com/jQuery.parseJSON/

Visitez le site Web http://www.Jsonlint.com et vérifiez votre json string simple, vous constaterez qu'il ne s'agit pas d'une chaîne json valide. Parce que jonas double quotes est un format json standard.

Jsonlint.com est un site Web pour vérifier le format json ou non.

Vous pouvez utiliser le remplacement pour résoudre ce problème. Cela a fonctionné pour moi.

 var str = "{'orderedList': 'true'}"; str = str.replace(/\'/g, '\"'); JSON.parse(str);