Jak reprezentujesz tablicę ciągów JSON?

183

To wszystko, czego potrzebujesz do prawidłowego JSON, prawda?

["somestring1", "somestring2"]
finneycanhelp
źródło
6
To tablica JSON zawierająca dwa ciągi, tak ... czy jest coś więcej na to pytanie? ;)
Miasto
Przeczytałem coś, co było sprzeczne z tym, co wszyscy się zgadzamy. Chciałem sprawdzić rzeczywistość. Dzięki!
finneycanhelp
4
O, rozumiem! Szkoda, że ​​nie możesz przyjąć własnego pytania jako odpowiedzi: D
Miasto
:) Cóż, to nie tylko odpowiedzi są zabawne. To wspaniali ludzie, tacy jak Ty, którzy pomagają sprawić, by ta strona była udanym sukcesem!
finneycanhelp

Odpowiedzi:

296

Bardziej szczegółowo opracuję niesamowitą odpowiedź ChrisR i przyniosę obrazy z jego niesamowitej referencji .

Prawidłowy JSON zawsze zaczyna się od nawiasów klamrowych {lub nawiasów kwadratowych [, nic więcej.

{rozpocznie się object:

lewy nawias klamrowy, po którym następuje ciąg klucza (nazwa, której nie można powtórzyć, w cudzysłowach), dwukropek i wartość (prawidłowe typy pokazano poniżej), a następnie opcjonalny przecinek, aby dodać więcej par łańcucha i wartości do woli i zakończyć prawy aparat ortodontyczny

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

Wskazówka : chociaż javascript akceptuje pojedyncze cytaty ', JSON przyjmuje tylko podwójne ".

[rozpocznie się array:

lewy nawias, po którym następuje wartość, opcjonalny przecinek, aby dodać więcej wartości do woli i zakończony prawym nawiasiem

[value, value]

Wskazówka : spacje między elementami są zawsze ignorowane przez dowolny parser JSON.

I valuejest object, array, string, number, boollub null:

Obraz pokazujący 6 typów wartości JSON: ciąg, liczba, obiekt JSON, tablica / lista, wartość logiczna i null

Więc tak, ["a", "b"]jest to całkowicie poprawny JSON, jakbyś mógł spróbować na link wskazany przez Manisha .

Oto kilka dodatkowych prawidłowych przykładów JSON, po jednym na 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
źródło
22
Tak Niesamowita reprezentacja interfejsu użytkownika
shridutt kothari
Czy JSON musi mieć podwójne cudzysłowy? Próbowałem sprawdzić poprawność ciągu OP powyżej, ale z pojedynczymi cudzysłowami na jsonlint.com i to mówi mi, że jest nieprawidłowy. Ale jest to ważne, gdy używasz podwójnego cudzysłowu.
Ray
@ Promuj jak zwykle, to nie ma prostej odpowiedzi tak lub nie, chociaż powiedziałbym, że to w większości „tak, po prostu idź z podwójnymi cudzysłowami”. json.org mówi nam tylko o stosowaniu podwójnych cudzysłowów, a większość miejsc prawdopodobnie będzie tego przestrzegać. Oto jednak głębsze dochodzenie w tej sprawie: stackoverflow.com/a/2275428/274502
cregox
61

Twój obiekt JSON w tym przypadku jest listą. JSON jest prawie zawsze obiektem z atrybutami; zestaw jednej lub więcej par klucz: wartość, więc najprawdopodobniej zobaczysz słownik:

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

wtedy możesz poprosić o wartość, "MyStringArray"a otrzymasz listę dwóch ciągów, "somestring1"i "somestring2".

Tata Smerf
źródło
12
Podany przykład kodu jest niepoprawny. Gdy spróbujesz parsować ten ciąg jako plik json, zgłosi błąd / wyjątek. Fakt, że mówisz, że JSON jest zawsze parami klucz / wartość, również jest z natury błędny. Nic w specyfikacji JSON nie mówi, że POTRZEBUJESZ mieć pary klucz / wartość. Mówiąc o transporcie danych, rzeczywiście pary klucz / wartość są najbardziej użyteczną strukturą, ale napis opublikowany przez OP jest całkowicie poprawny JSON: codebeautify.org/jsonviewer/92ac7b
ChrisR
1
Miałem API w mózgu, gdzie chcesz sprawdzić wartość w tablicy opartej na kluczu. Tak byłoby w przypadku nienazwanej tablicy {"1": "somestring1", "2": "somestring2"}
PapaSmurf
41

Zasadniczo tak, JSON to po prostu dosłowna reprezentacja twojej wartości, więc to, co powiedziałeś, jest poprawne.

Całkiem jasne i dobre wyjaśnienie notacji JSON można znaleźć na stronie http://json.org/

ChrisR
źródło
5
String strJson="{\"Employee\":
[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

To jest przykład ciągu JSON z Employeejako obiekt, a następnie wielu ciągów i wartości w tablicy jako odniesienie do @cregox...

Trochę skomplikowane, ale może wyjaśnić wiele w jednym ciągu JSON.

Pushkar Shrivastava
źródło