2016-11-08 13 views
0

In der Tat, der Titel sagt alles. Aber ich gehe mehr ins Detail:Sollte ich in einem JSON geschweifte oder eckige Klammern kodieren?

Ich sende eine JSON-Zeichenfolge von meinem JS-Skript an den Server und umgekehrt. Das JSON enthält Dinge wie Inhalte, die der Benutzer in ein Textfeld geschrieben hat, aber ich weiß, dass es einigen Benutzern gelingt, das JSON-Array früher oder später auf diese Weise zu brechen, also entschied ich mich, es mit encodeURIComponent() zu codieren.

Aber ich sehe, dass, wenn ich versuche, geschweifte Klammern zu kodieren, dass sie überhaupt nicht codiert sind. Wird das ein Problem sein?

Encoding of some characters

Genauer gesagt, ich habe Angst, dass, wenn jemand schreibt: } , {, die JSON brechen. Dies sollte nicht passieren, da alles innerhalb von doublequotes wie folgt ist: "} , {", und wenn ein Benutzer doublequotes oder singlequotes schreibt, werden sie verschlüsselt, und von dem, was ich weiß, sollte JSON alles gut behandeln, aber ich bin mir nicht ganz sicher.

Also, sollte ich diese Klammern kodieren?

(Eine andere Sache ist, dass die Daten in MySQL innerhalb vorbereitete Anweisungen eingeführt wird, so dass sollte kein Problem sein, oder ich bin daran falsch?)

Antwort

3

Eine schnelle Zitat aus dem JSON specifications:

A String ist eine Folge von null oder mehr Unicode-Zeichen, in Anführungszeichen eingeschlossen, mit Backslash-Escapes.

Wie Sie im Bild sehen können, die den Absatz oben dargestellt, jede Unicode-Zeichen mit Ausnahme ", \ und Steuerzeichen zitiert folgt, wie sie ist; Es ist kein Entkommen erforderlich.

2

warum bremst? Ihre JSON-String wird innerhalb ""

So etwas wie

sein
{"postcontent": "Shouldnt { } be escaped"} 
+0

Es scheint, dass ich in diesem Fall richtig mit meiner Hipothesis bin, die ich gerade geschrieben habe ... – Fusseldieb

+0

Ja, das einzige Problem könnte von einfachen und doppelten Anführungszeichen kommen, aber Sie sagen kodieren diese;) –

+1

Einfache Anführungszeichen sind keine Sonderzeichen in JSON. Sie benötigen keine Codierung oder Flucht. – axiac

Verwandte Themen