En utilisant Jackson JSON Generator, comment puis-je écrire plusieurs objets dans un seul champ?

Supposons que j'ai trois classes (getters et setters laissé de côté pour des raisons de concision):

@JsonAutoDetect
public class InfoCollection{
    private InfoType1 info1;
    private InfoType2 info2;
}

@JsonAutoDetect
public class InfoType1{
    private String fieldA;
}

@JsonAutoDetect
public class InfoType2{
    private String fieldB;
}

J'essaie d'écrire un JsonSerializer.serialize() fonction qui sérialise un InfoCollection objet dans ce format:

{
    "allInfo":{
        "fieldA":"foo",
        "fieldB":"bar"
    }
}

C'est ce que j'ai maintenant:

jsonGenerator.writeStartObject();
jsonGenerator.writeFieldName("allInfo");
jsonGenerator.writeObject(myInfoCollection.getInfo1());
jsonGenerator.writeObject(myInfoCollection.getInfo2());
jsonGenerator.writeEndObject();

qui est à l'origine de l'exception suivante:

 org.codehaus.jackson.JsonGenerationException: Can not start an object, expecting field name

Me manque un petit quelque chose ou suis-je totalement les choses à ce sujet dans le mauvais sens?

REMARQUE: UN couple de solutions proposées jusqu'à présent sont de l'écriture de chaque champ de InfoType1 et InfoType2. Je suis à la recherche d'une solution qui ne nécessite pas de cela, parce que je voudrais utiliser la solution sur d'énormes classes avec de nombreux champs.

source d'informationauteur CFL_Jeff