Ответ 1
Да, оба утверждения должны быть истинными. Литеральный токен null
- значение JSON. Текст JSON представляет собой сериализованный объект или массив, для которого требуется {} или [].
Горячие дебаты сегодня:
Является ли текстовый поток null
действительным JSON?
Согласно http://www.ietf.org/rfc/rfc4627.txt?number=4627:
...
2. Грамматика JSONТекст JSON - это последовательность токенов. Набор токенов включает шесть структурных символов, строки, числа и три литерала имена.
Текст JSON представляет собой сериализованный объект или массив.
Если это интерпретируется как оба утверждения, должно быть истинным, чтобы текст был действительным JSON?
Однако многие другие библиотеки, похоже, разрешают это, и действительно, кажется, что один действительный токен может быть законным результатом.
Есть ли окончательный ответ?
Да, оба утверждения должны быть истинными. Литеральный токен null
- значение JSON. Текст JSON представляет собой сериализованный объект или массив, для которого требуется {} или [].
RFC 7159 отменяет ограничение на то, что текст JSON должен быть объектом или массивом. В грамматике указано:
JSON-text = ws value ws
где
value = false/null/true/object/array/number/string
Таким образом, "null" теперь является допустимым документом JSON.