Gibt es verbotene Zeichen in Schlüsselnamen für JavaScript-Objekte oder JSON-Zeichenfolgen? Oder Charaktere, die entkommen müssen?
Um genauer zu sein, möchte ich "$", "-" und Leerzeichen in Schlüsselnamen verwenden.
javascript
json
object
key
Christophe
quelle
quelle
obj['whatever']
Notation verwenden. Für dieobj.whatever
Version können jedoch nur reguläre alphanumerische Schlüssel verwendet werden .Antworten:
Nein. Jede gültige Zeichenfolge ist ein gültiger Schlüssel. Es kann sogar
"
so lange dauern, bis Sie entkommen:Es besteht möglicherweise die Möglichkeit, dass Sie beim Laden solcher Werte in einige Sprachen Schwierigkeiten haben, die versuchen, Schlüssel mit Objektfeldnamen zu verknüpfen. Ich kenne solche Fälle jedoch nicht.
quelle
\u four-hex-digits
Form).Die folgenden Zeichen müssen in JSON-Daten maskiert werden, um Probleme zu vermeiden
JSON Parser kann Ihnen beim Umgang mit JSON helfen.
EDIT: Hier ist ein Ersatz-JSON-Parser, da der OP-Link nicht mehr funktioniert
quelle
{ "singlequotetest": "something here isn\'t right"}
gegen{ "singlequotetest": "Fixing here what wasn't right"}
{"🐶🔫": "not nice, but still valid json"}
Es ist erwähnenswert, dass das Starten der Schlüssel mit Zahlen zwar gültig ist, jedoch einige unbeabsichtigte Probleme verursachen kann.
Beispiel:
quelle
Unicode-Codepunkte U + D800 bis U + DFFF müssen vermieden werden: Sie sind in Unicode ungültig, da sie für UTF-16-Ersatzpaare reserviert sind. Einige JSON-Encoder / -Decoder ersetzen sie durch U + FFFD. Sehen Sie zum Beispiel, wie die Go-Sprache und ihre JSON-Bibliothek mit ihnen umgehen .
Vermeiden Sie daher "\ uD800" bis "\ uDFFF" allein (nicht in Ersatzpaaren).
quelle