Bagaimana Anda mewakili array string JSON?

183

Ini semua yang Anda butuhkan untuk JSON yang valid, bukan?

["somestring1", "somestring2"]
finneycanhelp
sumber
6
Itu adalah array JSON yang mengandung dua string, ya ... apakah ada lagi pertanyaan itu? ;)
Town
Saya membaca sesuatu yang bertentangan dengan kesepakatan kita semua. Jadi, saya ingin memeriksa kenyataan di sana. Terima kasih!
finneycanhelp
4
Ah, begitu! Sayang sekali Anda tidak dapat menerima pertanyaan Anda sendiri sebagai jawabannya: D
Kota
:) Yah, bukan hanya jawaban yang menyenangkan. Orang-orang hebat seperti Anda yang membantu menjadikan situs ini sukses yang menyenangkan!
finneycanhelp

Jawaban:

297

Saya akan menguraikan sedikit lebih lanjut tentang jawaban luar biasa ChrisR dan membawa gambar dari referensi yang mengagumkan .

JSON yang valid selalu dimulai dengan kurung kurawal {atau kurung siku [, tidak ada yang lain.

{akan memulai object:

penjepit kiri diikuti oleh string kunci (nama yang tidak dapat diulang, dalam tanda kutip), titik dua dan nilai (tipe yang valid ditunjukkan di bawah), diikuti oleh koma opsional untuk menambahkan lebih banyak pasangan string dan nilai sesuka hati dan selesai dengan penjepit yang tepat

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

Petunjuk : walaupun javascript menerima tanda kutip tunggal ', JSON hanya membutuhkan dua tanda kutip ".

[akan memulai array:

braket kiri diikuti oleh nilai, koma opsional untuk menambah nilai sesuka hati dan diakhiri dengan braket kanan

[value, value]

Petunjuk : spasi di antara elemen selalu diabaikan oleh parser JSON.

Dan valueadalah object, array, string, number, boolatau null:

Gambar yang menunjukkan 6 jenis nilai JSON dapat berupa: string, angka, objek JSON, Array / list, boolean, dan null

Jadi ya, ["a", "b"]adalah JSON yang benar-benar valid, seperti Anda bisa mencoba pada tautan yang ditunjukkan Manish .

Berikut adalah beberapa contoh JSON ekstra valid, satu per blok:

{}

[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
sumber
22
Representasi UI yang Luar
Biasa
Apakah JSON harus memiliki tanda kutip ganda? Saya mencoba untuk memvalidasi string OP di atas tetapi dengan tanda kutip tunggal di jsonlint.com dan memberitahu saya itu tidak valid. Tapi itu berlaku ketika menggunakan tanda kutip ganda.
Ray
@ Ray seperti biasa, itu tidak memiliki jawaban ya atau tidak yang sederhana, meskipun saya akan mengatakan itu sebagian besar "ya, pergi saja dengan tanda kutip ganda". json.org hanya memberi tahu kita tentang penggunaan tanda kutip ganda, dan sebagian besar tempat mungkin akan mengikuti itu. Namun, inilah penyelidikan yang lebih mendalam tentang hal ini: stackoverflow.com/a/2275428/274502
cregox
61

Objek JSON Anda dalam hal ini adalah daftar. JSON hampir selalu merupakan objek dengan atribut; satu set kunci atau lebih: pasangan nilai, sehingga kemungkinan besar Anda melihat kamus:

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

maka Anda dapat meminta nilai "MyStringArray"dan Anda akan mendapatkan kembali daftar dua string, "somestring1"dan"somestring2" .

PapaSmurf
sumber
12
Contoh kode yang Anda posting tidak valid, ketika Anda akan mencoba mengurai string itu sebagai json, ia akan menampilkan kesalahan / pengecualian. Fakta Anda mengatakan bahwa JSON selalu pasangan kunci / nilai juga secara inheren salah. Tidak ada dalam spesifikasi JSON yang mengatakan Anda PERLU untuk memiliki pasangan kunci / nilai. Ketika berbicara tentang transport data, memang pasangan kunci / nilai adalah struktur yang paling berguna tetapi string yang diposting OP benar-benar valid JSON: codebeautify.org/jsonviewer/92ac7b
ChrisR
1
Saya punya API di otak, di mana Anda ingin mencari nilai dalam array berdasarkan kunci. Jadi, untuk array tanpa nama, {"1": "somestring1", "2": "somestring2"}
PapaSmurf
41

Pada dasarnya ya, JSON hanyalah representasi javascript literal dari nilai Anda sehingga apa yang Anda katakan benar.

Anda dapat menemukan penjelasan yang cukup jelas dan bagus tentang notasi JSON di http://json.org/

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

Ini adalah contoh string JSON dengan Employeesebagai objek, lalu beberapa string dan nilai dalam array sebagai referensi@cregox ...

Agak rumit tapi bisa menjelaskan banyak dalam satu string JSON.

Pushkar Shrivastava
sumber