Как вы представляете массив строк JSON?

184

Это все, что вам нужно для правильного JSON, верно?

["somestring1", "somestring2"]
finneycanhelp
источник
6
Это массив JSON, содержащий две строки, да ... есть еще вопрос? ;)
Город
Я прочитал что-то, что противоречило тому, с чем мы все согласны. Итак, я хотел проверить реальность там. Спасибо!
finneycanhelp
4
Ах я вижу! Жаль, что вы не можете принять свой собственный вопрос в качестве ответа: D
Город
:) Ну, это не просто ответы, это весело. Такие замечательные люди, как вы, помогают сделать этот сайт увлекательным!
finneycanhelp

Ответы:

299

Я более подробно остановлюсь на удивительном ответе ChrisR и привожу изображения из его удивительной ссылки .

Действительный JSON всегда начинается с фигурных {или квадратных скобок [, и ничего больше.

{начнется object:

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

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

Подсказка : хотя javascript принимает одинарные кавычки ', JSON принимает только двойные ".

[начнется array:

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

[value, value]

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

И valueэто object, array, string, number, boolили null:

Изображение, показывающее 6 типов значения JSON: строка, число, объект JSON, массив / список, логическое значение и ноль

Так что да, ["a", "b"]это совершенно правильный JSON, как вы могли бы попробовать по ссылке, которую указал Маниш .

Вот несколько дополнительных допустимых примеров 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"]
}
cregox
источник
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/

ChrisR
источник
5
String strJson="{\"Employee\":
[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

Это пример строки JSON с Employeeобъектом as, затем несколькими строками и значениями в массиве в качестве ссылки на @cregox...

Немного сложно, но многое можно объяснить в одной строке JSON.

Пушкар Шривастава
источник