JSON может быть либо массивом, либо объектом. Специально от json.org:
JSON построен на двух структурах:
- Коллекция пар имя / значение. На разных языках это
реализован как объект, запись,
структура, словарь, хеш-таблица,
список ключей или ассоциативный массив.
- Упорядоченный список значений. На большинстве языков это реализовано как
массив, вектор, список или последовательность.
Затем он описывает две структуры как:
Обратите внимание, что начальным и конечным символами являются фигурные и квадратные скобки соответственно.
Редактировать
И отсюда: http://www.ietf.org/rfc/rfc4627.txt
Текст JSON - это последовательность токенов.
Набор жетонов включает в себя шесть
структурные символы, строки,
цифры и три буквальных имени.
Текст JSON представляет собой сериализованный объект или массив.
Обновление (2014)
По состоянию на март 2014 года появился новый RFC JSON ( 7159 ), который слегка изменяет определение (см. Стр. 4/5).
Определение согласно RFC 4627 было: JSON-text = object / array
Это было изменено в RFC 7159 на: JSON-text = ws value ws
Где ws
представляет пробел, а value
определяется следующим образом:
Значение JSON ДОЛЖНО быть объектом, массивом, числом или строкой или одним из
следующие три буквальных имени:
false null true
Таким образом, ответ на этот вопрос все еще положительный, текст JSON может начинаться с квадратной скобки (то есть массива). Но в дополнение к объектам и массивам теперь это может быть число, строка или значения false
, null
или true
.
Кроме того, это изменилось по сравнению с моей предыдущей цитатой RFC 4627 (выделение добавлено):
Текст JSON - это последовательность токенов. Набор жетонов включает в себя шесть
структурные символы, строки, числа и три буквенных имени.
Текст JSON представляет собой сериализованное значение . Обратите внимание, что некоторые предыдущие
спецификации JSON ограничивают текст JSON объектом или
массив. Реализации, которые генерируют только объекты или массивы, где
Текст в формате JSON будет совместим в том смысле, что все
реализации примут их как соответствующие тексты JSON.