Gson serializa uma lista de objetos polimórficos

Eu estou tentando serializar / desserializar um objeto, que envolve polimorfismo, em JSON usando o Gson.

Este é o meu código para serialização:

ObixBaseObj lobbyObj = new ObixBaseObj();
lobbyObj.setIs("obix:Lobby");

ObixOp batchOp = new ObixOp();
batchOp.setName("batch");
batchOp.setIn("obix:BatchIn");
batchOp.setOut("obix:BatchOut");

lobbyObj.addChild(batchOp);

Gson gson = new Gson();
System.out.println(gson.toJson(lobbyObj));

Aqui está o resultado:

 {"obix":"obj","is":"obix:Lobby","children":[{"obix":"op","name":"batch"}]}

A serialização funciona principalmente, exceto pela falta do conteúdo de membros herdados (Particularmenteobix:BatchIn eobixBatchout seqüências estão faltando). Aqui está minha classe base:

public class ObixBaseObj  {
    protected String obix;
    private String display;
    private String displayName;
    private ArrayList<ObixBaseObj> children;

    public ObixBaseObj()
    {
        obix = "obj";
    }

    public void setName(String name) {
        this.name = name;
    }
        ...
}

Aqui está como minha classe herdada (ObixOp) se parece:

public class ObixOp extends ObixBaseObj {
    private String in;
    private String out;

    public ObixOp() {
        obix = "op";
    }
    public ObixOp(String in, String out) {
        obix = "op";
        this.in = in;
        this.out = out;
    }
    public String getIn() {
        return in;
    }
    public void setIn(String in) {
        this.in = in;
    }
    public String getOut() {
        return out;
    }
    public void setOut(String out) {
        this.out = out;
    }
}

Eu percebo que eu poderia usar um adaptador para isso, mas o problema é que eu estou serializando uma coleção de tipo de classe baseObixBaseObj. Existem cerca de 25 classes que herdam disso. Como posso fazer isso funcionar elegantemente?

questionAnswers(3)

yourAnswerToTheQuestion