2016-12-16 171 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); 

希望這會有所幫助。應該完成這項工作。關鍵是要告訴傑克遜不會在未知屬性上失敗,因此會拋棄你不確定的東西。