Gson deserializa objeto complexo com dependências recursivas

Eu tenho várias classes que contêm uma dependência recursiva umas das outras e eu serializo-as para o formato JSON com Gson GraphAdapterBuilder, e funciona perfeitamente. Agora quero desserializá-los na mesma estrutura, mas não consigo descobrir como.

Eu fiz um exemplo:

class ClassA{
    public int field;
    public ClassB parent;
    public ClassA(int f, ClassB p){
        field = f;
        parent = p;
    }
}

class ClassB{
    public Vector<ClassA> vector = new Vector<ClassA>();
}

...

ClassB b = new ClassB();        

ClassA a1 = new ClassA(1,b);
ClassA a2 = new ClassA(2,b);
ClassA a3 = new ClassA(3,b);

b.vector.add(a1);
b.vector.add(a2);
b.vector.add(a3);

//Serializing object b

GsonBuilder gsonBuilder = new GsonBuilder();

new GraphAdapterBuilder()
    .addType(ClassA.class)
    .addType(ClassB.class)
    .registerOn(gsonBuilder);

Gson gson = gsonBuilder.create();

String json = gson.toJson(b);

A saída está me dando o que eu quero:

{"0x1":{"vector":["0x2","0x3","0x4"]},"0x2":{"field":1,"parent":"0x1"},"0x3":{"field":2,"parent":"0x1"},"0x4":{"field":3,"parent":"0x1"}}

Existe uma maneira de desserializar essa cadeia de json de volta ao objeto de ClassB?

questionAnswers(2)

yourAnswerToTheQuestion