Come si rappresenta un array di stringhe JSON?


184

Questo è tutto ciò che serve per un JSON valido, giusto?

["somestring1", "somestring2"]

6
È un array JSON che contiene due stringhe, sì ... c'è di più in quella domanda? ;)
Città

Ho letto qualcosa che contraddice ciò su cui siamo tutti d'accordo. Quindi, volevo il controllo della realtà lì. Grazie!
finneycanhelp,

4
Ah, capisco! È un peccato non poter accettare la propria domanda come risposta: D
Città

:) Beh, non sono solo le risposte a essere divertenti. Sono persone fantastiche come te che contribuiscono a rendere questo sito un successo divertente!
finneycanhelp,

Risposte:


298

Elaborerò un po 'di più sulla fantastica risposta di ChrisR e porterò immagini dal suo fantastico riferimento .

Un JSON valido inizia sempre con parentesi graffe {o parentesi quadre [, nient'altro.

{inizierà un object:

parentesi graffa sinistra seguita da una stringa chiave (un nome che non può essere ripetuto, tra virgolette), due punti e un valore (tipi validi mostrati di seguito), seguito da una virgola opzionale per aggiungere più coppie di stringa e valore a piacimento e terminata con una parentesi graffa giusta

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

Suggerimento : sebbene JavaScript accetti virgolette singole ', JSON ne accetta solo doppie ".

[inizierà un array:

parentesi quadra sinistra seguita da valore, virgola opzionale per aggiungere più valore a piacere e terminata con una parentesi quadra destra

[value, value]

Suggerimento : gli spazi tra gli elementi vengono sempre ignorati da qualsiasi parser JSON.

Ed valueè un object, array, string, number, boolo null:

Immagine che mostra i 6 tipi che un valore JSON può essere: stringa, numero, oggetto JSON, matrice / elenco, booleano e null

Quindi sì, ["a", "b"]è un JSON perfettamente valido, come puoi provare sul link indicato da Manish .

Ecco alcuni esempi JSON extra validi, uno per blocco:

{}

[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"]
}

22
Rappresentazione dell'interfaccia utente così incredibile
shridutt kothari,

JSON deve avere virgolette doppie? Ho provato a convalidare la stringa dell'OP sopra ma con virgolette singole su jsonlint.com e mi dice che non è valido. Ma è valido quando si usano le virgolette doppie.
Ray,

@Ray come al solito, che non ha una semplice risposta sì o no, anche se direi che è principalmente "sì, basta usare virgolette doppie". json.org ci dice solo sull'uso delle doppie virgolette, e la maggior parte dei posti probabilmente seguirà questo. Tuttavia, ecco un approfondimento su di esso: stackoverflow.com/a/2275428/274502
cregox

61

Il tuo oggetto JSON in questo caso è un elenco. JSON è quasi sempre un oggetto con attributi; un insieme di una o più coppie chiave: valore, quindi molto probabilmente vedrai un dizionario:

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

quindi puoi chiedere il valore di "MyStringArray"e otterrai un elenco di due stringhe "somestring1"e "somestring2".


12
L'esempio di codice che hai pubblicato non è valido, quando proveresti ad analizzare quella stringa come json genererà un errore / un'eccezione. Anche il fatto che tu dica che JSON è sempre coppia chiave / valore è intrinsecamente sbagliato. Nulla nelle specifiche JSON dice che DEVI avere coppie chiave / valore. Quando si parla di trasporto di dati, infatti, le coppie chiave / valore sono la struttura più utile, ma la stringa pubblicata dall'OP è perfettamente valida JSON: codebeautify.org/jsonviewer/92ac7b
ChrisR

1
Avevo le API nel cervello, dove vuoi cercare il valore in un array basato su una chiave. Quindi sarebbe, per un array senza nome, {"1": "somestring1", "2": "somestring2"}
PapaSmurf,

41

Fondamentalmente sì, JSON è solo una rappresentazione letterale javascript del tuo valore, quindi quello che hai detto è corretto.

Puoi trovare una spiegazione abbastanza chiara e buona della notazione JSON su http://json.org/


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

Questo è un esempio di stringa JSON con Employeecome oggetto, quindi più stringhe e valori in un array come riferimento a @cregox...

Un po 'complicato ma può spiegare molto in una singola stringa JSON.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.