Простым решением этого может быть добавление двух геттеров для field1
:
class Foo {
private String field1 = "blah";
public String getField1() {
return field1;
}
public String getField2() {
return field1;
}
}
Джексон создаст поле для каждого геттера, следуя соглашению об именах javabeans:
{"field1":"blah","field2":"blah"}
Альтернативой этому может быть @com.fasterxml.jackson.annotation.JsonAnyGetter
, который может предоставить вам еще большую гибкость:
class Foo {
private String field1 = "blah";
public String getField1() {
return field1;
}
@JsonAnyGetter
public Map<String, Object> getAny() {
Map<String, Object> m = new HashMap<>();
m.put("field2", this.field1);
m.put("field3", this.field1.toUpperCase());
return m;
}
}
Производство:
{"field1":"blah","field3":"BLAH","field2":"blah"}