次の 3 つのクラスがあるとします (簡潔にするためにゲッターとセッターは省略しています)。
@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
ます。多くのフィールドを持つ巨大なクラスでソリューションを使用したいので、これを必要としないソリューションを探しています。