前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fastjson序列化从一个服务获取的数据,序列化时间有问题

fastjson序列化从一个服务获取的数据,序列化时间有问题

作者头像
johnhuster的分享
发布2022-03-29 14:21:01
7070
发布2022-03-29 14:21:01
举报
文章被收录于专栏:johnhuster

fastjson是现在国内使用最广的一款json库了吧,开源自阿里巴巴,具体详情可以查看fastjson github主页

下面直接入主题,看应用场景:

流程:

1.前端调用服务A提供的接口获取展示数据

2.服务A调用服务B提供的接口获取数据

3.服务A读取从服务B获取到的data属性,然后强制转换成服务A中的某个实体列表,代码大致如下

代码语言:javascript
复制
List<ClassA> payList = (List<ClassA>)resultMap.get("data");
class ClassA{
   @JSONField(format="yyyy-MM-dd HH:mm")
    private Date payDate;

   ......
}

4.服务A将整理好的数据,经过fastjson序列化后传递给前端页面

奇怪的问题出现了:

服务A中的classA实体里面设置的序列化特性没有生效,具体原因是(List<ClassA>)resultMap.get("data")强制转换的结果仅仅是一个JSONArray对象,而不是List<ClassA>,所以在序列化时根本就不可能读到ClassA类中设置的序列化特性(笔者建议打个断点看一下)。

解决方法:

通过JSONArray提供的toJavaList方法:

List<ClassA> payList = resultMap.getJSONArray("data").toJavaList(ClassA.class);

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/06/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档