fastjson指定序列化顺序(@JSONField(ordina)解)不生效

zzzyeukh  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(55)

JsonDemo.java为主程序,其中序列化了Routers4Boot和Routers4BootConfig类,发现即使在类上面加上了JSONField注解,依旧顺序是乱的。

com.alibaba
fastjson
1.2.74

testWriteJsonRouter()为序列化的函数。

对象:
@DaTa
@getter
@Setter
public class Routers4Boot {
@JSONField(ordinal = 1)
private String routerDescr;
@JSONField(ordinal = 2)
private String flowIp;
@JSONField(ordinal = 3)
private String flowPort;
@JSONField(ordinal = 4)
private String flowSampleRate;
}
序列化后:
{
"flowIp":"1.1.1.1",
"routerDescr":"router1",
"flowPort":"9999",
"flowSampleRate":"5000"
}
Routers4BootConfig类也类似,附件中有源程序和序列化后的json文件。

json.zip

ltskdhd1

ltskdhd11#

我也遇到相同的问题,使用JSON.toJSON序列化后的顺序不对,用JSON.toJSONString序列化后的顺序才是对的。
这是我前几天提交的issue: https://github.com/alibaba/fastjson/issues/3662

wr98u20j

wr98u20j2#

我遇到的是 JSONObejct.pares(String str) 转换为JSONObject后顺序不一致,也不清楚是什么情况。按理说反序列不是应该保持一致吗?Gson就能正常的转换..

相关问题