Як ви представляєте масив струн JSON?


183

Це все, що вам потрібно для дійсного JSON, правда?

["somestring1", "somestring2"]

6
Це масив JSON, що містить два рядки, так ... чи є ще це питання? ;)
місто

Я прочитав щось, що суперечило тому, про що ми всі домовлялися. Отже, я хотів перевірити реальність там. Дякую!
finneycanhelp

4
А, бачу! Прикро, що ви не можете прийняти власне запитання як відповідь: D
місто

:) Ну, це не просто відповіді. Чудові люди, такі як ви, допомагають зробити цей сайт веселим успіхом!
finneycanhelp

Відповіді:


296

Я детальніше розробимо про чудову відповідь Кріса і приведу зображення з його дивовижної довідки .

Дійсний JSON завжди починається з фігурних дужок {або квадратних дужок [, нічого іншого.

{почне object:

ліва дужка з наступним рядком ключа (ім'я, яке не можна повторити, у лапках), двокрапкою та значенням (дійсні типи, показані нижче), після чого необов'язково кома для додавання більше пар рядків і значення за бажанням і закінчується правильна дужка

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

Підказка : хоча javascript приймає одинарні лапки ', JSON приймає лише подвійні ".

[почне array:

ліва дужка з наступним значенням, необов'язкова кома для додавання більше значення за бажанням і закінчена правою дужкою

[value, value]

Підказка : пробіли між елементами завжди ігноруються будь-яким аналізатором JSON.

І valueце object, array, string, number, boolабо null:

Зображення, що показує 6 типів, значенням JSON може бути: рядок, число, об'єкт JSON, масив / список, булеве значення та null

Так що так, ["a", "b"]це абсолютно дійсний JSON, як ви могли б спробувати за посиланням Manish вказав .

Ось кілька додаткових дійсних прикладів JSON, один на блок:

{}

[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
Тож дивовижне представлення інтерфейсу користувача
shridutt kothari

Чи повинен JSON мати подвійні лапки? Я намагався перевірити рядок OP вище, але з одинарними цитатами на jsonlint.com, і це говорить мені, що це недійсне. Але це дійсно при використанні подвійних лапок.
Рей

@ Як ніколи, звичайно, на це немає простого відповіді "так" або "ні", хоча я б сказав, що це здебільшого "так, просто подвійні лапки". json.org розповідає нам лише про використання подвійних лапок, і більшість місць, ймовірно, слідують за цим. Однак тут більш глибоке дослідження по цього приводу: stackoverflow.com/a/2275428/274502
cregox

61

Ваш об'єкт JSON в цьому випадку - це список. JSON майже завжди є об'єктом з атрибутами; набір однієї або декількох клавіш: пари значень, тому ви, швидше за все, побачите словник:

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

тоді ви можете запитати значення, "MyStringArray"і ви отримаєте назад список двох рядків "somestring1"і "somestring2".


12
Приклад коду, який ви опублікували, недійсний, коли ви намагатиметеся розібрати цей рядок як json, він видасть помилку / виняток. Те, що ви говорите про те, що JSON - це завжди пара «ключ / значення», також по суті є помилковим. Ніщо в специфікації JSON не говорить про те, що ПОТРІБНО мати пари ключів / значень. Якщо говорити про транспорт даних, то справді пари ключів / значень є найбільш корисною структурою, але рядок, яку розміщено в ОП, є абсолютно дійсним JSON: codebeautify.org/jsonviewer/92ac7b
ChrisR

1
У мене були API на мозку, де ви хочете шукати значення в масиві на основі ключа. Отже, для масиву без імені було б {"1": "somestring1", "2": "somestring2"}
PapaSmurf

41

В основному, так, JSON - це просто буквальне уявлення JavaScript за вашою цінністю, тому те, що ви сказали, є правильним.

Ви можете знайти досить чітке і хороше пояснення нотації JSON на 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\"}]}";

Це приклад рядка JSON з Employeeоб'єктом, а потім декількома рядками та значеннями у масиві як посилання на @cregox...

Трохи складне, але може багато пояснити в одній рядку JSON.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.