Предположим, что у меня есть следующие три класса (убиратели и сеттеры опущены для краткости):
@JsonAutoDetect
public class InfoCollection{
private InfoType1 info1;
private InfoType2 info2;
}
@JsonAutoDetect
public class InfoType1{
private String fieldA;
}
@JsonAutoDetect
public class InfoType2{
private String fieldB;
}
Я пытаюсь написать функцию JsonSerializer.serialize()
, которая сериализует объект InfoCollection
в этом формате:
{
"allInfo":{
"fieldA":"foo",
"fieldB":"bar"
}
}
Это то, что у меня есть сейчас:
jsonGenerator.writeStartObject();
jsonGenerator.writeFieldName("allInfo");
jsonGenerator.writeObject(myInfoCollection.getInfo1());
jsonGenerator.writeObject(myInfoCollection.getInfo2());
jsonGenerator.writeEndObject();
который вызывает следующее исключение:
org.codehaus.jackson.JsonGenerationException: Can not start an object, expecting field name
Я пропустил что-то маленькое или я полностью об этом не ошибаюсь?
ПРИМЕЧАНИЕ.. Несколько предлагаемых решений пока включают в себя запись каждого отдельного поля InfoType1
и InfoType2
. Я ищу решение, которое не требует этого, потому что я хотел бы использовать решение для огромных классов со многими полями.