Javascript: Разбор объекта JSON с сохранением порядка цифровых клавиш

#javascript #json #insertion-order

#javascript #json #вставка-порядок

Вопрос:

Я пытаюсь отобразить некоторые данные JSON в браузере, которые поступают из приложения Python, эти данные содержат объекты с цифровыми ключами, порядок которых должен быть сохранен при анализе в Javascript. К сожалению, Javascript не сохраняет порядок ключей объектов, вместо этого сортируя цифровые клавиши в порядке возрастания.

Представление дерева JSON

Целью этого является отображение событий из указанных данных JSON в удобочитаемом виде, поэтому важен их порядок. Другие вопросы в том же духе предполагают перенос каждого объекта в массив, но это означало бы пожертвовать удобочитаемостью для пользователя и привело бы к модификации приложения Python, в словарях которого нет проблем с сохранением порядка вставки.

Я знаю о классе Map в Javascript, который допускает словарную структуру, сохраняя порядок вставки во всех случаях. Есть ли способ сделать JSON.parse объекты вывода на карты? Есть ли какая-нибудь сторонняя библиотека, в которую я должен заглянуть?

Комментарии:

1. запрашивать библиотеки запрещено.

2. Структура объекта, описанная в JSON, неупорядочена. Если API требует фиксированного порядка, они должны использовать массив. Одним из вариантов было бы написать свой собственный анализатор JSON и использовать функцию обратного вызова для отслеживания порядка клавиш в массиве.

3. Если у каждого из models есть один объект, у которого есть один объект, и ключ этого объекта соответствует требуемому порядку, вы можете «переместить его вверх» на один уровень, и это даст вам порядок — при условии, что вы хотите 5412.... раньше 8618... , как показано на вашем изображении. Если это то, что вы хотите — я могу помочь, в противном случае, как сказал @slappy, заставьте приложение Python отправлять models в виде массива.

4. Я вроде как надеялся, что вы могли бы сделать это с помощью reviver, но, оказывается, вы не можете. Я думаю, что использование пользовательской библиотеки для разбора json — это ваш единственный выбор.

5. Но да, правильное решение — исправить ваш код Python, который генерирует JSON, поскольку объекты JSON определены как неупорядоченные, поэтому вам действительно не следует их использовать, если порядок важен (и не может быть восстановлен каким-либо другим способом).