Может ли массив быть верхним уровнем JSON-Text?

StackOverflow https://stackoverflow.com/questions/3833299

  •  26-09-2019
  •  | 
  •  

Вопрос

на обсуждение в этом посте: 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

Да, попробуйте здесь.

http://www.jsonlint.com/

и положить в [{}

Есть некоторая путаница, видела в других комментариях. Тип носителя «Приложение / JSON» допускает только объект или массив на верхнем уровне для JSON-текста, за JSON RFC. Отказ Однако для анализатора любого значения json приемлемо, как видно в спецификации Ecmascript.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top