Я заметил, что порядок элементов в объекте JSON не является исходным порядком.
Как насчет элементов списков JSON? Поддерживается ли их порядок?
javascript
arrays
json
list
user437899
источник
источник
Порядок элементов в массиве (
[]
) сохраняется. Порядок элементов (имя: пары значений) в «объекте» ({}
) отсутствует, и обычно они «перемешиваются», если не самим форматером / анализатором JSON, то объектами, зависящими от языка (Словарь, NSDictionary, Hashtable и т. Д.), Которые используются в качестве внутреннего представления.источник
Практически говоря, если ключи были типа NaN, браузер не изменит порядок.
Следующий скрипт выведет «One», «Two», «Three»:
Тогда как следующий скрипт выведет «Три», «Один», «Два»:
источник
Некоторые механизмы JavaScript поддерживают ключи в порядке вставки. Например, V8 сохраняет все ключи в порядке вставки, за исключением ключей, которые могут быть проанализированы как 32-разрядные целые числа без знака .
Это означает, что если вы выполните одно из следующих действий:
Вы будете последовательно получать собаку , медведя и обезьяну в этом порядке на Chrome, который использует V8. Node.js также использует V8. Это будет справедливо, даже если у вас есть тысячи предметов. YMMV с другими движками JavaScript.
Демо здесь и здесь .
источник
"Поддерживается ли порядок элементов в списке JSON?" не очень хороший вопрос Вы должны спросить: «Поддерживается ли порядок элементов в списке JSON при выполнении [...]?» Как отметил Феликс Кинг, JSON - это текстовый формат данных. Это не мутирует без причины. Не путайте строку JSON с объектом (JavaScript).
Вы, вероятно, говорите о таких операциях, как
JSON.stringify(JSON.parse(...))
. Теперь ответ: это зависит от реализации. 99% * анализаторов JSON не поддерживают порядок объектов и поддерживают порядок массивов, но вы также можете использовать JSON для хранения чего-то вродеи использовать парсер, который поддерживает порядок объектов.
* возможно, даже больше :)
источник