Lassen Sie sich folgendes Objekt betrachten:Java startet Json mit gegebenen Startobjekt zu lesen
public class MyObject{
int a, b;
public MyObject(){
setA(1);
setB(1);
}
// getters and setters
}
Ich habe die folgende Zeichenfolge
{"a":4}
wenn ich Jackson 2 ein neues Objekt I a = 4
zum Erstellen und b = 1
(Ich nehme an, es ist das Objekt, das mit dem leeren Konstruktor erstellt wurde, wo Setter verwendet werden, um die Felder zu ändern, die Jackson 2 in der Zeichenfolge liest).
Jetzt habe ich eine Instanz von myObject mit a = 1
und b = 2
(anders als die, die ich mit dem leeren Konstruktor haben kann). Wie kann ich den String verwenden, um das Objekt auf a = 4
und b = 2
"abzuschließen"? Mit anderen Worten: Wie kann ich eine unvollständige JSON-Zeichenfolge verwenden, um Feldwerte in einem bereits vorhandenen Objekt zu ersetzen, das sich von dem mit dem leeren Konstruktor erstellten unterscheidet?
EDIT: eine mögliche Lösung aus der Antwort.
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;
}
}