Обмен технологиями

Java: преобразовать строку json в объект карты, как обеспечить неизменность ее порядка.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Все знают, что LinkedHashMap объектов Map упорядочен, но его порядок может гарантировать только порядок записи. Если мы преобразуем строку json в объект json с помощью JSONObject и принудительно преобразуем ее в LinkedHashMap, даже если используется упорядоченная карта, результат. Это все еще неупорядочено, потому что, когда мы преобразуем строку в объект json, он уже неупорядочен. Чтобы решить проблему беспорядка, мы можем начать только с преобразования в объект json. Когда объект json упорядочен, происходит принудительное преобразование в LinkedHashMap. также упорядоченный.

выполнить:
Представляем pom-файл

 <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-databind</artifactId>
     <!--<version>2.17.1</version> 如果启动报错,可能有版本冲突,将版本号注释掉再试一下: 与jwt版本冲突-->
 </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

Способ упаковки:

/**
	有序的json转换
	字符串转换为LinkedHashMap
*/
public static Map<String,Object> toLinkedHashMap(String json) throws IOException{
	ObjectMapper mapper = new ObjectMapper();
	Map<String,Object> rmap = mapper.readValue(json, new TypeReference<LinkedHashMap<String,Object>(){});
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8