Рассмотрит следующий объект:Java начать чтение JSon с заданным начальным объектом
public class MyObject{
int a, b;
public MyObject(){
setA(1);
setB(1);
}
// getters and setters
}
У меня есть следующая строка
{"a":4}
, когда я использую Джексон 2, чтобы создать новый объект У меня есть a = 4
и b = 1
(Я предполагаю, что это объект, созданный с помощью пустого конструктора, где сеттеры используются для изменения полей, которые Джексон 2 читает в строке).
Теперь у меня есть экземпляр myObject с a = 1
и b = 2
(отличным от того, который я могу иметь с пустым конструктором). Как я могу использовать String для «завершения» объекта до a = 4
и b = 2
? Другими словами: как я могу использовать неполную строку json для замены значений полей в уже существующем объекте, отличном от того, который был создан с помощью пустого конструктора?
EDIT: возможное решение из ответа.
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;
}
}