大家都知道Map对象的LinkedHashMap是有序的,但它的顺序只能保证录入的顺序, 如果我们是将json字符串用JSONObject转换为json对象,并强转为LinkedHashMap,即便使用了有序map, 结果还是无序的.那是因为我们在从字符串转换为json对象时,已经是无序了. 解决无序问题,我们只能从转换为json对象入手, 当json对象时有序的,那么强转成LinkedHashMap也是有序的.

实现:
引入pom文件

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

封装方法:

/**
	有序的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>(){});
}
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐