让我们考虑以下对象:
public class MyObject{
int a, b;
public MyObject(){
setA(1);
setB(1);
}
// getters and setters
}
我有以下字符串
{"a":4}
当我使用 Jackson 2 创建一个新对象时a = 4
(b = 1
我假设它是使用空构造函数创建的对象,其中 setter 用于修改 Jackson 2 在字符串中读取的字段)。
现在,我有一个带有a = 1
and的 myObject 实例b = 2
(与我可以使用空构造函数的实例不同)。如何使用 String 将对象“完成”到a = 4
and b = 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;
}
}