【FastJson】fastjson序列化保持字段顺序

在这里插入图片描述

1.概述

转载:fastjson序列化保持字段顺序

在使用 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);

猜你喜欢

转载自blog.csdn.net/qq_21383435/article/details/126429372