栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Jackson中映射动态json对象字段?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Jackson中映射动态json对象字段?

使用
JsonNode

您可以

JsonNode
com.fasterxml.jackson.databind
包装中使用:

public class Event {    public String name;    public long timestamp;    public JsonNode payload;    // Getters and setters}

然后使用以下方法解析它:

String json = "{"name":"foo","timestamp":1475840608763," + ""payload":{"foo":"bar"}}";ObjectMapper mapper = new ObjectMapper();Event event = mapper.readValue(json, Event.class);

映射
JsonNode
到POJO

例如,考虑您要将

JsonNode
实例映射到以下类:

public class Payload {    private String foo;    // Getters and setters}

可以使用以下代码来实现:

Payload payload = mapper.treeToValue(event.getPayload(), Payload.class);

考虑一个
Map<String, Object>

根据您的要求,您可以使用

Map<String,Object>
代替
JsonNode

public class Event {    public String name;    public long timestamp;    public Map<String, Object> payload;    // Getters and setters}

如果需要将a转换

Map<String, Object>
为POJO,请使用:

Payload payload = mapper.convertValue(event.getPayload(), Payload.class);

根据Jackson的文档,该

convertValue()
方法在功能上类似于先将给定值序列化为JSON,然后将JSON数据绑定到给定类型的值,但是由于不需要(不需要)进行完全序列化,因此该方法应更有效。但是,相同的转换器(序列化器和反序列化器)将用于数据绑定,这意味着相同的对象映射器配置有效。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616857.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号