解决FastJSON反序列化顺序问题
Posted kelelipeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决FastJSON反序列化顺序问题相关的知识,希望对你有一定的参考价值。
https://blog.csdn.net/meifannao789456/article/details/96828656
版权
fastjson默认在序列化时是按照字段的字母顺序进行序列化的,这样序列化出来的Json数据中字段的顺序就与类中定义的字段顺序不一致了。默认按字母排序序列化的速度会快一些,但是有时候我们并不希望按照字母顺序进行序列化。
现在提供几种方式来支持自定义序列化顺序。
自己设置排序规则,通过JSONType的orders来指定排序规则:
// 设置排序规则
@JSONType(orders={"user_name","passwd"})
public class LoginBean {
// 设置别名user_name
@JSONField(name="user_name")
private String userName; // 账户
private String passwd; // 密码
}
通过JSONField的ordinal来指定顺序,这个特性需要1.1.42以上版本
public static class VO {
@JSONField(ordinal = 3)
private int f0;
@JSONField(ordinal = 2)
private int f1;
@JSONField(ordinal = 1)
private int f2;
}
指定序列化的排序方式,使用Feature.OrderedField按照字段排序
JSON.parseObject("...", Feature.OrderedField)
官方提供的方式是配置JSONType.alphabetic的值为false,但是好像不太好用
@JSONType(alphabetic = false)
public static class B {
public int f2;
public int f1;
public int f0;
}
————————————————
版权声明:本文为CSDN博主「咻咻ing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/meifannao789456/article/details/96828656
以上是关于解决FastJSON反序列化顺序问题的主要内容,如果未能解决你的问题,请参考以下文章
解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support
Fastjson 反序列化 Jndi 注入利用 JdbcRowSetImpl 链