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.
Schreibe einen Kommentar