java - map 上的 jackson 补丁对象

标签 java jackson

我有以下测试代码:

Model model = new Model();
model.setName("Alex");
model.setAddress("NY");

Map<Object, Object> attrs = new HashMap<>();
attrs.put("address", "London");

我需要仅使用 attrs Map 中的值来修补我现有的 model 对象。

因此,在执行代码后,我需要具有具有以下值的现有 model 对象:

name: Alex
address: London

是否可以使用 Jackson 库来实现?如果是,请举例说明。

最佳答案

Jackson 绝对可以做到。作为mentioned by yshavit , 以下将达到目的:

ObjectMapper mapper = new ObjectMapper(); 

// Convert POJO to Map
Map<String, Object> modelAsMap = 
    mapper.convertValue(model, new TypeReference<Map<String, Object>>() {}); 

// Merge maps
modelAsMap.putAll(attrs);

// Convert Map to POJO
Model modelPatched = mapper.convertValue(modelAsMap, Model.class);

有关将 POJO 映射到 Map 的更多详细信息反之亦然,请参阅此 answer .

关于java - map 上的 jackson 补丁对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44101109/

相关文章:

使用文本文件的 Java 登录屏幕

java - JMX MBeanInfo 和描述符

java - Jackson Fasterxml : how to parse abstract class' children? 混合?

java - Spring Boot Rest 中自连接到 JSON

java - 将 XML 解析为 Java 对象节点

java - SimpleDateFormat - 时区不正确

java - Spring Data @DomainEvents 与 AbstractAggregateRoot 保存失败(List <S> iterables)

Java NullPointerException,请帮我理解为什么

java - 用于原始类型的 Jackson 序列化器

java - 如何使用 Jackson 将 JSON 属性按前缀映射/分组到对象列表?