2016-12-16 141 views
0

我有一个对象类A:对象映射字段

public class A { 
    private Long id; 
    private String name; 
    private String mail; 
    private String moreData; 
    // ... 
    } 

类B:

public class B { 
    private Long id; 
    private String name; 
    private String crc; 
    // ... 
    } 

能否使用杰克逊从对象A提供字段映射到B复制对应字段到目标对象。

我从对象需要

A { 
    Long id = 23L; 
    String name = "name"; 
    String mail = "mail"; 
    String moreData = "moreData"; 
    // ... 
    } 

得到尽可能目标对象

B { 
    Long id = 23L; 
    String name = "name"; 
    String crc = mull; 
    // ... 
    } 

对象映射处理后...

是否有可能使用com.fasterxml.jackson实现的解决方案以简单的方式?

+0

您可以使用BeanIO例如(http://www.beanio.org/2.0/docs/reference/index.html)。 – dmitrievanthony

+0

我可以试试,但在我的项目中使用更快的XML,所以我想用它来解决。 – Sergii

回答

1

当然可以。不是完全理解你为什么要这样做,或者我认为可能比转换成JSON更有效,但如果你想使用杰克逊,我会这样做:

ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 
B b = objectMapper.readValue(objectMapper.writeValueAsString(a), B.class); 

希望这会有所帮助。应该完成这项工作。关键是要告诉杰克逊不会在未知属性上失败,因此会抛弃你不确定的东西。