Может ли массив быть верхним уровнем JSON-Text?
Вопрос
на обсуждение в этом посте: JSON-Conversion-in-JavaScript
Решение
Да, массив законный как JSON-Text.
Есть три стандартных документа, определяющих JSON: RFC 4627., RFC 7159. (который устарел RFC 4627), а ЭКМА-404.. Отказ Они отличаются тем, какие элементы верхнего уровня они позволяют, но все позволяет объекту или массив в качестве элемента верхнего уровня.
- RFC 4627: Объект или массив.
«Текст JSON - это сериализованный объект или массив». - RFC 7159: Любая ценность json.
«Текст JSON - это сериализованное значение». - ECMA-404: Любая ценность json.
«Текст JSON - это последовательность токенов, образованных из кодовых точек Unicode, которая соответствует грамматике ценности JSON».
Другие советы
да, но вы должны подумать о том, чтобы сделать корневой объект вместо в некоторых сценариях, из-за Джосон угона. Отказ Это уязвимость информации о раскрытии информации, основанная на переопределении конструктора массива в JavaScript.
Это из спецификации Ecmascript.
Jsontext: JSONVALUE JSONVALUE: JSONNULLITERLITERAL JSONBOOOLEANLITERALER JSONOBJECT JSONARRAY JSORSING JSONNUMER
Есть некоторая путаница, видела в других комментариях. Тип носителя «Приложение / JSON» допускает только объект или массив на верхнем уровне для JSON-текста, за JSON RFC. Отказ Однако для анализатора любого значения json приемлемо, как видно в спецификации Ecmascript.