问一个 json 反序列化的操作

2021-09-15 10:19:23 +08:00
 zhongpingjing

比如

{
    "name": "e1",
    "id": 1,
    "department": {
        "deptName": "d1",
        "deptId": 2
    }
}

应该怎样才能反序列化成这样的 bean 结构

public class EmployeeVO {

    private Long id;

    private String name;
    
    private Long deptId;

    private String deptName;
    
}

这只是举个例子,实际的 json 是有三层,而 bean 只有一层,应该怎么操作才能反序列化正确 项目用的是 jackson,还有 hutool 的 json 工具

2612 次点击
所在节点    Java
11 条回复
AoEiuV020
2021-09-15 10:32:44 +08:00
只能整个 bean 自定义解析,
对 jackson 是 StdConverter,
chendy
2021-09-15 10:38:31 +08:00
自定义解析规则
其实直接多写个类然后转过来更简单直观
zhongpingjing
2021-09-15 10:50:29 +08:00
多谢各位,已经解决
shanghai1943
2021-09-15 12:23:46 +08:00
@zhongpingjing 咋解决的。分享一下经验,学习一下
islandempty
2021-09-15 13:03:59 +08:00
department 里的内容封装一个类
zoharSoul
2021-09-15 13:19:12 +08:00
@zhongpingjing #3 请分享解决方案, 你希望你查到相同问题的时候, 发现提问的楼主只回复了一句已解决吗?
lix7
2021-09-15 17:36:34 +08:00
INTOX8O
2021-09-15 17:43:40 +08:00
@lix7 多谢,刚好我也遇到这个问题了
zhongpingjing
2021-09-16 09:14:43 +08:00
@zoharSoul 不是不愿意分享啦,是我发现这个第三方的接口只有少数几个 key 是不在第一层的,所以手动去获取 key-value,然后在 set 到 bean 里面,这个解决方案没有通用性。。
zhongpingjing
2021-09-16 09:16:30 +08:00
@shanghai1943 你可以看看 9 楼,通用的解决方案应该就得去自定义反序列化方式
zoharSoul
2021-09-16 10:25:17 +08:00
@zhongpingjing #9 原来如此

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801940

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX