2016-12-16 39 views
1

讓我們考慮以下對象:Java的開始閱讀的Json給定的起始對象

public class MyObject{ 
    int a, b; 

    public MyObject(){ 
     setA(1); 
     setB(1); 
    } 

    // getters and setters 

} 

我有以下字符串

{"a":4} 
當我用傑克遜2以創建一個新的對象我有 a = 4

b = 1(我假設它是用空構造函數創建的對象,其中setter用於修改Jackson 2在字符串中讀取的字段)。

現在,我有一個myObject的實例a = 1b = 2(與我可以用空的構造函數不同)。 如何使用字符串將對象「完成」到a = 4b = 2? 換句話說:我如何使用不完整的json字符串替換已有對象中的字段值,該對象與用空構造函數創建的對象不同?

編輯:從答案可能的解決方案。

public static Object updateObject(String fileName, Object oldValue){ 
    try { 
     return new ObjectMapper().readerForUpdating(oldValue).readValue(new File(fileName)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return oldValue; 
    } 
} 

回答