2016-12-16 77 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; 
    } 
} 

回答