V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhongpingjing
V2EX  ›  Java

问一个 json 反序列化的操作

  •  
  •   zhongpingjing · 9 天前 · 1438 次点击

    比如

    {
        "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 工具

    11 条回复    2021-09-16 10:25:17 +08:00
    AoEiuV020
        1
    AoEiuV020   9 天前   ❤️ 1
    只能整个 bean 自定义解析,
    对 jackson 是 StdConverter,
    chendy
        2
    chendy   9 天前   ❤️ 1
    自定义解析规则
    其实直接多写个类然后转过来更简单直观
    zhongpingjing
        3
    zhongpingjing   9 天前
    多谢各位,已经解决
    shanghai1943
        4
    shanghai1943   9 天前
    @zhongpingjing 咋解决的。分享一下经验,学习一下
    islandempty
        5
    islandempty   9 天前
    department 里的内容封装一个类
    zoharSoul
        6
    zoharSoul   9 天前   ❤️ 3
    @zhongpingjing #3 请分享解决方案, 你希望你查到相同问题的时候, 发现提问的楼主只回复了一句已解决吗?
    lix7
        7
    lix7   8 天前
    wsfmzq
        8
    wsfmzq   8 天前
    @lix7 多谢,刚好我也遇到这个问题了
    zhongpingjing
        9
    zhongpingjing   8 天前
    @zoharSoul 不是不愿意分享啦,是我发现这个第三方的接口只有少数几个 key 是不在第一层的,所以手动去获取 key-value,然后在 set 到 bean 里面,这个解决方案没有通用性。。
    zhongpingjing
        10
    zhongpingjing   8 天前
    @shanghai1943 你可以看看 9 楼,通用的解决方案应该就得去自定义反序列化方式
    zoharSoul
        11
    zoharSoul   8 天前
    @zhongpingjing #9 原来如此
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3689 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 16ms · UTC 06:54 · PVG 14:54 · LAX 23:54 · JFK 02:54
    ♥ Do have faith in what you're doing.