Google的Json Parsing Gson库:JsonElement和JsonObject有什么区别?

2022-09-01 01:07:07
public abstract class JsonElement extends Object 

表示 Json 元素的类。它可以是JsonObject,JsonArray,JsonPrimitive或JsonNull。

public final class JsonObject extends JsonElement 

一个类,表示 Json 中的对象类型。对象由名称-值对组成,其中名称是字符串,值是任何其他类型的 JsonElement。这允许创建 JsonElements 树。此对象的成员元素按添加顺序进行维护。

耶谷歌!

不要介意这个问题。


答案 1

JsonElement包含 JSON 中所有有效类型的通用代码:

  • JsonObject
  • JsonArray
  • JsonPrimitive (string, number, boolean)
  • JsonNull

这允许您编写一个方法,该方法采用适用于上述任何类型的 a。JsonElement


答案 2

JsonElement是所有不同特定类型的基类型 - 它是一个基类,具有所有节点都应实现的共同点。从逻辑上讲,这很有道理。

所有特定类型都继承的东西对你来说也是一件好事。它允许您测试对象是否为 Json 节点表示形式,只需检查它是否继承自 .JsonElementJsonElement

该类可作为公共类使用,可能不是因为您希望对其进行子类化,而是因为您希望测试其子类。JsonElement


推荐