2025年map转jsonobject对象(map转json对象 fastjson)

map转jsonobject对象(map转json对象 fastjson)转换字符串示例 结果 b 3 i 2 我们会发现顺序与原来的字符串顺序不一致 通过 DEBUG 去 com alibaba fastjson parser DefaultJSONP 的下述方法 重点就是此行的 lexer isEnabled Feature

大家好,我是讯享网,很高兴认识大家。



转换字符串示例:

 
  
讯享网

结果:

通过DEBUG去com.alibaba.fastjson.parser.DefaultJSONParser的下述方法

讯享网

//重点就是此行的lexer.isEnabled(Feature.OrderedField)=false

 
讯享网

重点就是此行的lexer.isEnabled(Feature.OrderedField)=false,打开JSONObject的源码构造方法可以发现当ordered参数值为false时使用的是HashMap存放数据。

 

hashmap是数组加链表结构,根据key的hash算法确定在数组中的位置,当发生hash冲突的时候,根据二叉树或者红黑树构成链表。所以是有序的,key确定,位置也就确定了。

如果要实现转换前的数据顺序与转换后的数据顺序一致,可以使用如下方式:

讯享网

解决办法:

1、解析时增加参数不调整顺序


讯享网

3、使用Gson解析

JsonObject returnData = new JsonParser().parse(replyString).getAsJsonObject();

json字符串序列化后如何保持顺序不变

 

LinkedHashMap<String, Object> jsonMap = JSON.parseObject(result,LinkedHashMap.class, Feature.OrderedField);


小讯
上一篇 2025-06-09 07:41
下一篇 2025-04-20 22:18

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/182403.html