GSON反序列化:如何知道对象?

Ant*_*kas 4 java gwt gson

我尝试使用gson库反序列化发送给我的对象流.在我看过的所有例子中,当调用fromJson方法时,我们已经知道我们期望拥有什么类型的对象.

在我的例子中,我收到了不同对象的流,我想知道在反序列化之前知道对象类的最佳方法.

{ A : {...}, B : { B1 : {...}, B2 : {...} }, C : {...} }
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想知道已经向我发送了3个对象:A.class,B.class和C.class

谢谢

Den*_*ret 6

该文档包含使用任意类或两次传递的反序列化的示例(集合中的第一个通用反序列化,然后是内容反序列化).

这个例子看起来就像你需要的那样.你可以调整它来使用

JsonObject obj = parser.parse(json).getAsJsonObject();
Run Code Online (Sandbox Code Playgroud)

获取一个JsonObject数组而不是一个数组,以便您可以迭代所有属性(使用entrySet)并根据名称(a = gson.fromJson(myjsonelement, A.class);)通过简单地将名称映射到类来反序列化.