기술나눔

java: json 문자열을 Map 객체로 변환합니다. 순서가 변경되지 않도록 하는 방법입니다.

2024-07-12

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

Map 객체의 LinkedHashMap이 순서가 있다는 것은 누구나 알고 있지만 그 순서는 항목 순서만 보장할 수 있습니다. 결과는 여전히 무질서합니다. 이는 문자열에서 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