定制序列化和1.0的区别?
是这样的,我使用
@ToString @Getter @Accessors(fluent = true) @Builder @NoArgsConstructor @AllArgsConstructor public class SomePage implements Serializable {
private static final long serialVersionUID = 1L;
@Delegate
@Builder.Default
private final SomeInfo info = new SomeInfo();
@Delegate
private final PageQuery pageQuery = new PageQuery();
}
我代理了SomeInfoPageQuery的方法(包含get和set),当接到json例如
{"id":10,"pageNo":1,"pageSize":10,"type":1,"updater":"tablo"}
时,其中id、type和updater是SomeInfo的字段,pageSize和pageNo则是PageQuery的字段,通过jackson可以把这些属性反序列化到info和pageQuery中,但是我用fastjson1.2.83,则反序列化后这些属性为null,我尝试升级到fastjson2之后,发现就可以了,但是升级后碰到了项目中的其他的一些问题
两个方法,fastjson1中的调用
SerializeConfig serializeConfig = new SerializeConfig();
serializeConfig.put(Number.class, ToStringSerializer.instance);
serializeConfig.put(Long.class, ToStringSerializer.instance);
serializeConfig.put(Long.TYPE, ToStringSerializer.instance);
serializeConfig.put(Integer.class, ToStringSerializer.instance);
String output = JSONObject.toJSONString(page, serializeConfig);
JSONObject extraJsonObject = JSONObject.parseObject(output);
其中ToStringSerializer找不到了,我把fastjson1里的这个类自己实现了一遍,也可以达到效果,问一下有没有fastjson2本来就支持的方法
第二个
JSON.toJSON(appVerRes, new SerializeConfig(true))
这个在2.0中不存在了,如果我直接替换成
JSON.toJSON(appVerRes)
有什么影响和区别吗?
原提问者GitHub用户YAGAMIL
这里有升级指南
JSON.toJSON(appVerRes, new SerializeConfig(true)) 2.0.15版本中也支持了 https://github.com/alibaba/fastjson2/wiki/fastjson_1_upgrade_cn
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。