问一个 json 反序列化的操作 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhongpingjing
0D
V2EX    Java

问一个 json 反序列化的操作

  •  
  •   zhongpingjing 2021-09-15 10:19:23 +08:00 3005 次点击
    这是一个创建于 1492 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如

    { "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  
       2021-09-15 10:32:44 +08:00   1
    只能整个 bean 自定义解析,
    对 jackson 是 StdConverter,
    chendy
        2
    chendy  
       2021-09-15 10:38:31 +08:00   1
    自定义解析规则
    其实直接多写个类然后转过来更简单直观
    zhongpingjing
        3
    zhongpingjing  
    OP
       2021-09-15 10:50:29 +08:00
    多谢各位,已经解决
    shanghai1943
        4
    shanghai1943  
       2021-09-15 12:23:46 +08:00
    @zhongpingjing 咋解决的。分享一下经验,学习一下
    islandempty
        5
    islandempty  
       2021-09-15 13:03:59 +08:00
    department 里的内容封装一个类
    zoharSoul
        6
    zoharSoul  
       2021-09-15 13:19:12 +08:00   3
    @zhongpingjing #3 请分享解决方案, 你希望你查到相同问题的时候, 发现提问的楼主只回复了一句已解决吗?
    lix7
        7
    lix7  
       2021-09-15 17:36:34 +08:00
    INTOX8O
        8
    INTOX8O  
       2021-09-15 17:43:40 +08:00
    @lix7 多谢,刚好我也遇到这个问题了
    zhongpingjing
        9
    zhongpingjing  
    OP
       2021-09-16 09:14:43 +08:00
    @zoharSoul 不是不愿意分享啦,是我发现这个第三方的接口只有少数几个 key 是不在第一层的,所以手动去获取 key-value,然后在 set 到 bean 里面,这个解决方案没有通用性。。
    zhongpingjing
        10
    zhongpingjing  
    OP
       2021-09-16 09:16:30 +08:00
    @shanghai1943 你可以看看 9 楼,通用的解决方案应该就得去自定义反序列化方式
    /table>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5728 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 02:50 PVG 10:50 LAX 19:50 JFK 22:50
    Do have faith in what you're doing.
    ubaomsnsnddmindexpchomeyahoorakutenmypapermeadowduckbidyahooyoubaozxmzxmasdabnvcgcvbfgdfscvmmhjkxxddcyybgbzznbnccubaouaituacvGXCVETGDGYHFGBCVBFJFHCBRECBCGDGET54WRWRRWERWREWWRWERRWERSDGEWSFDSFSFfbbsubaofhddfgewrdgdfewwrewwretruyutututdfgfgdgdfgtetgdfgtdfgdert4gdfggwr235wer3wevsdfsdfgdfertxcvsdfrwerhfddfgcvbrwfafbdfhjghbmnlghrtygfdscxvxcvxcsvdasfdffgdcvsdftertsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfshasha9178shasha9178shasha9178shasha9178shasha9178liflif2liflif2liflif2liflif2liflif2liblib3liblib3liblib3liblib3liblib3zhazha444zhazha444zhazha444zhazha444zhazha444dende5dendedendendenden2denden21fenfen9fenf619fen619fenfe9fe619sdfsdfsdfsdfsdfzhazh90zhazh0zhaa50zha90zh590zhozhozzhozhzhozhozhozho2lislislls95lili95lils5liss9sdf0ty987sdft876sdft9876sdf09876sd0t9876sdf0ty98sdf0976sdf0ty986sdf0ty96sdf0t76sdf0876df0ty98sf0t876sd0ty76sdy76sdf76sdf0t76sdf0ty9sdf0ty98sdf0ty987sdf0ty98sdf6676sdf876sd876sd876sdf6sdf6sdf9876sdf0tsdf06sdf0ty9776sdf0ty9776sdf0ty76sdf8876sdf0tsd6sdf06s688876sd688sdf86
    zoharSoul
        11
    zoharSoul  
       2021-09-16 10:25:17 +08:00
    @zhongpingjing #9 原来如此