JSON-parse - Apostroph innen name
In Django Vorlage habe ich ausgedruckt Daten wie diese:
P.place = '{{place.json|safe}}';
Dann in der JavaScript-Datei bin ich Gemüsemesser es so:
place = JSON.parse(P.place);
Alles in Ordnung ist, für Daten, wie:
{"category": "Cars", "name": "Z"}
Weil der string so aussieht:
P.place = '{"category": "Cars", "name": "Z"}'
So, ich kann Sie analysieren mithilfe von JSON.parse-Methode Hexe akzeptieren strings als Eingabe.
Problem ist, wenn ich die Daten so:
{"category": "Cars", "name": "Wojtek's Z"}
Weil als input-string für die JSON-parser sieht so aus:
'{"category": "Cars", "name": "Wojtek'
Ich nicht entkommen kann, die einzelne Anführungszeichen innerhalb JSON-string, denn dann JSON-string ungültig. Aus dem gleichen Grund, den ich nicht ersetzen umliegenden Zitate von Doppel-und escape-Anführungszeichen innerhalb der JSON-string.
Meine Lösung sieht so aus:
In der HTML-Vorlage:
P.place = {{place.json|safe}};
Dann in JavaScript
var place = JSON.stringify(P.place);
place = JSON.parse(place);
Es funktioniert, aber es ist nicht die optimale Lösung IMHO.
Wie dieses problem zu lösen, in mehr cleaver Weg?
- Sie MÜSSEN zitieren Apostrophe in JSON, gibt es keinen Weg vorbei. Aber normalerweise kann man entkommen, wenn die Definition Objekt mit "\'". Oder wenn Sie es bevorzugen, können unicode-escape \u0027 (glaube ich).
- Können Sie das nicht tun, überprüfen Sie heraus jsonlint.com und json.org
- Sie können nicht tun, was? Check-out json-Spezifikation.
- Sie können nicht zitieren, einfache Apostrophe. Parse error on line 2: {"ff": "f\'f"} Damit ich nicht lösen kann, mein problem mit Ihrer Aussage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann ich von zwei Möglichkeiten zu denken:
Erstellen Sie ein script-element vom Typ
application/json
, Spritzen Sie Ihre Vorlage Daten in es, dann Lesen Sie dessen Daten, zB.Oder, manuell die Flucht der einzelnen Angebote vor der Injektion der string, zB.