使用包
阿里的FastJson 版本号为当前最新版本:1.2.56
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
问题描述
在使用FastJson时,序列化对象会按照字母顺序重新拍,不方便对照查看。
一般的做法是对每个字段添加注解来指定序列时的顺序
@JSONField(ordinal = 1)
private int data;
这样做序列化(对象->Json字符串)时是没有问题的。
但当我们需要反序列化(Json字符串->对象)时,使用JSON.toJavaObject(JsonObject, MyClass.class)
方法,该字段的数据就会丢失。
表现情况数值为0,对象为null。
解决方案
目前已经在Gayhub上面提交了Issues,等待回复解决。
查看其他的Issues,当前可以对实体类添加注解来取消序列化时按照字母排序,也算实现了要求。
只是感觉有些不爽,毕竟丢数据这个问题不应该发生在使用量这么大的包上。
@JSONType(alphabetic=false)
public class MyClass {
}
Comments | NOTHING