Є (хакі) способи зробити це ... але ви не повинні.
У JSON об'єкт визначається таким чином:
Об’єкт - це невпорядкований набір пар ім’я / значення.
Див. Http://json.org .
Більшість реалізацій JSON не докладають зусиль для збереження порядку пар імен / значень об'єкта, оскільки він (за визначенням) несуттєвий.
Якщо ви хочете, щоб порядок зберігався, вам слід перевизначити структуру даних; напр
{
"items":
[
[
{"WR":"qwe"},
{"QU":"asd"},
{"QA":"end"},
{"WO":"hasd"},
{"NO":"qwer"}
],
]
}
або простіше:
{
"items":
[
{"WR":"qwe"},
{"QU":"asd"},
{"QA":"end"},
{"WO":"hasd"},
{"NO":"qwer"}
]
}
СЛІДУВАТИ
Дякую за інформацію, але мені не залишається іншого вибору, крім як використовувати JSON у своєму додатку, і моєму додатку потрібно зберігати порядок ключів незалежно від визначення об'єкта JSON ... Мені не дозволено змінювати формат файлу JSON також...
Вам потрібно важко поспілкуватися з тим, хто створив цю структуру файлів і не дозволить вам її змінити. Це / вони просто помиляються. Вам потрібно їх переконати.
Якщо вони насправді не дозволяють вам змінити це:
- Вам слід наполягати на тому, щоб не називати це JSON ... тому що це не так.
- Слід зазначити, що вам доведеться писати / модифікувати код спеціально для обробки цього формату "не JSON" ... якщо ви не знайдете якусь реалізацію JSON, яка зберігає порядок. Якщо вони є клієнтом, який платить, переконайтеся, що вони оплачують цю додаткову роботу, яку вам доведеться зробити.
- Слід зазначити, що якщо "не JSON" потрібно використовувати якийсь інший інструмент, це буде проблематично. Дійсно, ця проблема буде виникати знову і знову ...
Такі речі настільки погані. З одного боку, ваше програмне забезпечення буде порушувати усталену / давню специфікацію, призначену для сприяння сумісності. З іншого боку, хитромудрі, які створили цей кульгавий (а не JSON!) Формат файлів, напевно, шлакують системи інших людей і т. Д., Тому що системи не можуть впоратися зі своїми нісенітницями.
ОНОВЛЕННЯ
Варто також прочитати, що на це питання говорить JSON RFC (RFC 7159) . Ось кілька уривків:
За роки після публікації RFC 4627 JSON знайшов дуже широке застосування. Цей досвід виявив певні закономірності, які, хоча і дозволяються його специфікаціями, викликали проблеми взаємодії.
JavaScript Object Notation (JSON) - це текстовий формат для серіалізації структурованих даних. ...
JSON може представляти чотири примітивні типи (рядки, числа, булеві значення та null) та два структурованих типи (об'єкти та масиви).
Об’єкт - це невпорядкована колекція з нуля або більше пар ім’я / значення, де ім’я є рядком, а значення - рядком, числом, логічним значенням, нулем, об’єктом або масивом.
Було виявлено, що бібліотеки синтаксичного аналізу JSON різняться щодо того, чи роблять вони порядок членів об’єкта видимим для програм, що викликають. Реалізації, поведінка яких не залежить від упорядкування членів, будуть взаємодіючими в тому сенсі, що ці відмінності на них не вплинуть.