Wie stellen Sie ein JSON-Array von Zeichenfolgen dar?

182

Das ist alles, was Sie für einen gültigen JSON benötigen, oder?

["somestring1", "somestring2"]
finneycanhelp
quelle
5
Das ist ein JSON-Array mit zwei Zeichenfolgen, ja ... gibt es mehr zu dieser Frage? ;)
Stadt
Ich habe etwas gelesen, das dem widersprach, worüber wir uns alle einig sind. Also wollte ich den Reality Check dort. Vielen Dank!
Finneycanhelp
4
Ah ich sehe! Es ist eine Schande, dass Sie Ihre eigene Frage nicht als Antwort akzeptieren können: D
Town
:) Nun, es sind nicht nur die Antworten, die Spaß machen. Es sind großartige Leute wie Sie, die dazu beitragen, dass diese Website ein unterhaltsamer Erfolg wird!
Finneycanhelp

Antworten:

296

Ich werde ein bisschen mehr auf ChrisRs großartige Antwort eingehen und Bilder von seiner großartigen Referenz bringen .

Ein gültiger JSON beginnt immer entweder mit geschweiften Klammern {oder eckigen Klammern [, sonst nichts.

{startet ein object:

linke Klammer gefolgt von einer Schlüsselzeichenfolge (ein Name, der nicht in Anführungszeichen wiederholt werden kann), einem Doppelpunkt und einem Wert (gültige Typen siehe unten), gefolgt von einem optionalen Komma, um nach Belieben weitere Paare von Zeichenfolgen und Werten hinzuzufügen und mit zu beenden eine rechte Klammer

{ "key": value, "another key": value }

Hinweis : Obwohl Javascript einfache Anführungszeichen akzeptiert ', verwendet JSON nur doppelte Anführungszeichen ".

[startet ein array:

linke Klammer gefolgt von Wert, optionales Komma, um nach Belieben mehr Wert hinzuzufügen, und abgeschlossen mit einer rechten Klammer

[value, value]

Hinweis : Leerzeichen zwischen Elementen werden von jedem JSON-Parser immer ignoriert.

Und valueein object, array, string, number, booloder null:

Das Bild zeigt die 6 Typen, die ein JSON-Wert sein kann: Zeichenfolge, Zahl, JSON-Objekt, Array / Liste, Boolescher Wert und Null

Also ja, ["a", "b"]ist ein vollkommen gültiger JSON, wie Sie den Link anprobieren könnten , auf den Manish zeigte .

Hier sind einige zusätzliche gültige JSON-Beispiele, eines pro Block:

{}

[0]

{"__comment": "json doesn't accept comments and you should not be commenting even in this way", "avoid!": "also, never add more than one key per line, like this"}

[{   "why":null} ]

{
  "not true": [0, false],
  "true": true,
  "not null": [0, 1, false, true, {
    "obj": null
  }, "a string"]
}
Cregox
quelle
22
Also Awesome UI Darstellung
Shridutt Kothari
Muss JSON doppelte Anführungszeichen haben? Ich habe versucht, die obige Zeichenfolge des OP zu überprüfen, jedoch mit einfachen Anführungszeichen auf jsonlint.com, und es wird mir mitgeteilt, dass sie ungültig ist. Es ist jedoch gültig, wenn doppelte Anführungszeichen verwendet werden.
Ray
@ Ray wie immer, das hat keine einfache Ja- oder Nein-Antwort, obwohl ich sagen würde, dass es meistens "Ja, geh einfach mit doppelten Anführungszeichen" ist. json.org sagt uns nur über die Verwendung von doppelten Anführungszeichen, und die meisten Orte werden dem wahrscheinlich folgen. Hier ist jedoch eine eingehendere
cregox
61

Ihr JSON-Objekt ist in diesem Fall eine Liste. JSON ist fast immer ein Objekt mit Attributen. eine Reihe von einem oder mehreren Schlüssel: Wert-Paaren, sodass Sie höchstwahrscheinlich ein Wörterbuch sehen:

{ "MyStringArray" : ["somestring1", "somestring2"] }

Dann können Sie nach dem Wert von fragen "MyStringArray"und erhalten eine Liste mit zwei Zeichenfolgen "somestring1"und "somestring2".

Papa Schlumpf
quelle
12
Das von Ihnen veröffentlichte Codebeispiel ist ungültig. Wenn Sie versuchen, diese Zeichenfolge als JSON zu analysieren, wird ein Fehler / eine Ausnahme ausgelöst. Die Tatsache, dass Sie sagen, dass JSON immer Schlüssel / Wert-Paare ist, ist ebenfalls von Natur aus falsch. Nichts in der JSON-Spezifikation besagt, dass Sie Schlüssel / Wert-Paare benötigen. Wenn es um Datentransport geht, sind Schlüssel / Wert-Paare zwar die nützlichste Struktur, aber die vom OP veröffentlichte Zeichenfolge ist absolut
ChrisR
1
Ich hatte APIs im Gehirn, bei denen Sie den Wert in einem Array anhand eines Schlüssels nachschlagen möchten. So wäre es für ein nicht genanntes Array {"1": "somestring1", "2": "somestring2"}
PapaSmurf
41

Grundsätzlich ist JSON nur eine Javascript-Literaldarstellung Ihres Wertes, sodass das, was Sie gesagt haben, korrekt ist.

Eine ziemlich klare und gute Erklärung der JSON-Notation finden Sie unter http://json.org/

ChrisR
quelle
5
String strJson="{\"Employee\":
[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

Dies ist ein Beispiel für eine JSON-Zeichenfolge mit einem EmployeeObjekt und mehreren Zeichenfolgen und Werten in einem Array als Referenz für @cregox...

Ein bisschen kompliziert, kann aber in einer einzelnen JSON-Zeichenfolge viel erklären.

Pushkar Shrivastava
quelle