Документация LinkedHashMap
Реализация хеш-таблицы и связанного списка интерфейса Map с предсказуемым порядком итераций.Эта реализация отличается от HashMap тем, что поддерживает двусвязный список, проходящий через все его записи. Этот связанный список определяет порядок итераций, который обычно является порядком, в котором ключи были вставлены в карту (порядок вставки). Обратите внимание, что порядок вставки не изменяется, если ключ повторно вставляется в карту,(Ключ k повторно вставляется в карту m, если m.put (k, v) вызывается, когда m.containsKey (k) возвращает true непосредственно перед вызовом.)
LinkedHashMap
в Java будет поддерживать порядок для вставки.Если вы прочитаете пары ключ-значение из упорядоченного списка и вставите его в LinkedHashMap
в том же порядке, то расположение будет сохранено.
Тем не менее, если вы читаете это из JSON, то порядок пар следует считать неупорядоченным
Из спецификации JSON RFC 8259 :
Объект - это неупорядоченная коллекция из нуля или более пар имя / значение, где имя - это строка, а значение - строка, число, логическое значение, ноль, объектили массив.
Далее:
Библиотеки синтаксического анализа JSON различаются в зависимости от того, делают ли они упорядочивание членов объекта видимым для вызывающего программного обеспечения.Реализации, поведение которых не зависит от порядка членов, будут взаимодействовать в том смысле, что на них не будут влиять эти различия.
Если вам нужен обходной путь, вы можете следовать ответу, предоставленному clayton.carmo .Этот обходной путь работает путем преобразования формы JSON object в JSON array объектов значения ключа.Это гарантированно для поддержания порядка.Из документации RFC:
Массив - это упорядоченная последовательность из нуля или более значений.