Was ist eigentlich der Unterschied dazu?
Das funktioniert gut:
var obj1 = jQuery.parseJSON('{"orderedList": "true"}');
document.write("obj1 "+ obj1.orderedList );
aber das funktioniert nicht:
var obj2 = jQuery.parseJSON("{'orderedList': 'true'}");
document.write("obj2 "+ obj2.orderedList );
Warum ist das so?
javascript
jquery
json
sadaf2605
quelle
quelle
Antworten:
Dies liegt daran, dass doppelte Anführungszeichen als Standard gelten, einfache Anführungszeichen jedoch nicht. Dies ist nicht wirklich spezifisch für JQuery, aber es geht um den JSON-Standard . Unabhängig vom JS-Toolkit sollten Sie also dasselbe Verhalten erwarten.
Aktualisieren
Oder es ist ein Duplikat des einfachen Anführungszeichens von jQuery in der JSON-Antwort
quelle
Gemäß der API-Dokumentation gelten doppelte Anführungszeichen als gültiges JSON, einfache Anführungszeichen nicht.
http://api.jquery.com/jQuery.parseJSON/
quelle
Gehen Sie zur Website www.Jsonlint.com und überprüfen Sie Ihre JSON- Zeichenfolge in einfachen Anführungszeichen. Sie werden feststellen, dass es sich nicht um eine gültige JSON-Zeichenfolge handelt. Weil doppelte Anführungszeichen json das Standard-json-Format ist.
jsonlint.com ist eine Website, auf der überprüft werden kann, ob das json-Format richtig ist oder nicht.
quelle
Sie können replace verwenden, um dies zu beheben. Das hat bei mir funktioniert.
var str = "{'orderedList': 'true'}"; str = str.replace(/\'/g, '\"'); JSON.parse(str);
quelle