次のオブジェクトを考えてみましょう。
public class MyObject{
int a, b;
public MyObject(){
setA(1);
setB(1);
}
// getters and setters
}
次の文字列があります
{"a":4}
Jackson 2 を使用して新しいオブジェクトを作成するa = 4とb = 1(Jackson 2 が文字列で読み取るフィールドを変更するためにセッターが使用される空のコンストラクターで作成されたオブジェクトだと思います)。
a = 1これで、 andを使用して myObject のインスタンスがb = 2作成されました (空のコンストラクターで使用できるインスタンスとは異なります)。a = 4String を使用してオブジェクトを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;
}
}