FastJsonfastjson序列化保持字段顺序
Posted 九师兄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastJsonfastjson序列化保持字段顺序相关的知识,希望对你有一定的参考价值。
1.概述
在使用 fastjson 将对象序列化成字符串时,发现字段顺序乱了,百度搜了一下,发现原因是将字符串反序列化(即转成JSON对象)时,被默认规则处理了。如果不想使用默认规则,就需要我们指定需要的规则,这里我们可以使用 Feature.OrderedField 来使其保持原有字段顺序。例如:
System.out.println(jsonString);
// 默认
JSONObject jsonObject = JSON.parseObject(jsonString);
// 修改后
JSONObject jsonObject = JSON.parseObject(jsonString, Feature.OrderedField);
String string= JSON.toJSONString(jsonObject);
System.out.println(string);
我直接去看了下 JSON.parseObject
方法,我猜测字段顺序不一致就是被默认的这个规则影响的:Feature.SortFeidFastMatch
,字面意思就是 以最快速度为字段进行排序。
即:
System.out.println(jsonString);
// 默认
JSONObject jsonObject = JSON.parseObject(jsonString);
// 即上面默认处理 相当于
JSONObject jsonObject = JSON.parseObject(jsonString, Feature.SortFeidFastMatch);
以上是关于FastJsonfastjson序列化保持字段顺序的主要内容,如果未能解决你的问题,请参考以下文章