我有一个包含递归视对方一个几类和我他们序列化JSON格式GSON GraphAdapterBuilder,其工作完美。现在我想将它们反序列化为相同的结构,但无法找出如何。GSON反序列化复杂的对象递归依赖
我做了一些例子:
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);
输出是给我什么,我想:
{"0x1":{"vector":["0x2","0x3","0x4"]},"0x2":{"field":1,"parent":"0x1"},"0x3":{"field":2,"parent":"0x1"},"0x4":{"field":3,"parent":"0x1"}}
有没有办法来反序列化JSON字符串回ClassB的对象?
这不是我所需要的。为什么您将原始类替换为字符串类型为String的类?问题只是使用具有递归依赖性的类。你写的解决方案不适合我。 – lub0v
重写原始类不是最佳解决方案 – virsha