Есть объект класса A. Его нужно превратить в json
class A {
private String id;
private String descr;
private B b;
}
И есть класс B. Он может быть очень большим.
class B {
private String id;
...
}
Интересно, можно ли превратить объект класса A в такой json - объект
{
"id": "a_id",
"b": {"id":"b_id"}
}
Если ли аннотация которая задает поля, которые нужно выдернуть из объекта класса B не затрагивая остальные @JsonXXXProperty({"id"}) ??? Очень бы помогло. При этом (если есть такая) я бы мог отдельно объект класса B преобразовывать в json так как помечено аннотациями в нем.
Я jackson только начинаю изучать. Буду очень благодарен за подсказку.
upd
я хотел лишь вот что сделать используя аннотации:
A a = ...
B b = ...
a.setB(b); b.setA(a);
ObjectMapper mapper = ...
String value = mapper.writeValueAsString(a);
после этого value должно было хранить значение json:
{
"id": "a_id",
"b": {"id":"b_id"}
}
но пока только вот такой код:
A a = ...
B b = ...
a.setB(b); b.setA(a);
ObjectMapper mapper = ...
ObjectNode node = (ObjectNode )mapper.convertValue(a, JsonNode.class);
node.remove(propertyToDelete);
String value = node.toString();
вот эта часть
node.remove(propertyToDelete);
очень много повторяться может. зависит от кол-ва полей для скрытия в json... не очень удобно :)