我正在尝试使用Gson反序列化JSON格式的树对象。每个节点都包含其子节点作为对象类型Node的字段。Node是一个接口,具有多个具体的类实现。在反序列化过程中,如果我不知道节点属于哪种类型,那么在反序列化节点时如何与Gson沟通要实现哪个具体类?每个节点都有一个指定类型的成员字段。当对象为序列化形式时,是否有一种方法可以访问该字段,并以某种方式将该类型传达给Gson?
谢谢!
我建议为s 添加一个自定义JsonDeserializerNode:
Node
Gson gson = new GsonBuilder() .registerTypeAdapter(Node.class, new NodeDeserializer()) .create();
您将能够访问JsonElement解串器方法中的代表节点,将其转换为JsonObject,并检索指定类型的字段。然后,您可以Node基于该实例创建正确类型的实例。
JsonElement
JsonObject