开发者社区> 问答> 正文

fastjson 2 定制序列化和1.0的区别?

定制序列化和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

展开
收起
后端老大 2023-04-21 11:12:01 253 0
1 条回答
写回答
取消 提交回答
  • 这里有升级指南

    JSON.toJSON(appVerRes, new SerializeConfig(true)) 2.0.15版本中也支持了 https://github.com/alibaba/fastjson2/wiki/fastjson_1_upgrade_cn

    原回答者GitHub用户wenshao

    2023-04-21 14:11:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载