JSON Spec - Muss der Schlüssel in Anführungszeichen gesetzt werden?
Beispiel:
Ist der folgende code gültig gegen die JSON Spec?
{
precision: "zip"
}
Oder sollte ich immer die folgende syntax verwenden? (Und wenn ja, warum?)
{
"precision": "zip"
}
Ich habe nicht wirklich etwas gefunden über diese in der JSON-Spezifikationen. Obwohl Sie verwenden Anführungszeichen, um Ihre Schlüssel in Ihre Beispiele. (So mache ich das auch jetzt noch)
InformationsquelleAutor der Frage christianvuerings | 2009-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie müssen von Anführungszeichen. Dies ist, um es einfacher zu machen und um zu vermeiden, dass ein anderes escape-Methode für javascript reserviert, keywords, ie
{for:"foo"}
.InformationsquelleAutor der Antwort cobbal
Sind Sie richtig zu verwenden strings als Schlüssel. Hier ist ein Auszug aus RFC 4627 - The application/json Media Type for JavaScript Object Notation (JSON)
Lesen Sie das gesamte RFC hier.
InformationsquelleAutor der Antwort PatrikAkerstrand
Vom 2.2. Objekte
und von 2.5. Strings
Also ich würde sagen, dass gemäß der Norm: ja, Sie sollten immer zitieren, der Schlüssel (obwohl einige Parser kann mehr verzeihen)
InformationsquelleAutor der Antwort Cebjyre
Ja, die Anführungszeichen sind obligatorisch. http://json.org/ sagt:
InformationsquelleAutor der Antwort
Da können Sie sich setzen "Eltern.Kind" dotted-notation, die Sie nicht haben, um setzen parent["Kind"] der ist auch gültig und nützlich sind, würde ich sagen, dass beide Möglichkeiten technisch akzeptabel. Der Parser sollte alles tun, in beide Richtungen einwandfrei. Wenn dein parser braucht keine Zitate auf die Tasten, dann ist es wahrscheinlich besser, nicht zu setzen (spart Platz). Macht es Sinn Sie zu nennen Saiten, weil das ist, was Sie sind, und da die eckigen Klammern gibt Ihnen die Fähigkeit, verwenden Sie die Werte für Schlüssel im wesentlichen macht es durchaus Sinn, nicht zu.
In Json können Sie die...
ganz gut ohne Probleme, wenn Sie einen Wert für einen Schlüssel und keiner zitiert nicht funktionieren, also wenn es nicht funktioniert, können Sie nicht, so dass Sie nicht so "Sie brauchen keine Zitate auf die Tasten". Auch wenn es richtig ist, zu sagen, Sie sind technisch strings. Logik und Verwendung anders argumentieren. Noch ist es offiziell ausgabeobjekt {"someKey": "Wert"} obj in unserem Beispiel führen Sie aus der Konsole von jedem beliebigen browser aus.
InformationsquelleAutor der Antwort Master James