谷歌的Json解析Gson库:JsonElement和JsonObject有什么区别?

47
public abstract class JsonElement extends Object 

表示Json元素的类。它可能是一个JsonObject,一个JsonArray,一个JsonPrimitive或者一个JsonNull。

public final class JsonObject extends JsonElement 

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

耶谷歌!

算了那个问题。

2个回答

45

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

  • JsonObject(JSON 对象)
  • JsonArray(JSON 数组)
  • JsonPrimitive(字符串、数字、布尔值)
  • JsonNull(JSON 空值)

这使您可以编写一个接受 JsonElement 的方法,该方法适用于上述任何一种类型。


6
JsonElement是所有不同具体类型的基础类型,它是一个带有所有节点都应该实现的共同内容的基类。从逻辑上讲,这很有意义。
所有特定类型都继承自JsonElement,这对您也是一件好事。它允许您通过检查是否继承自JsonElement来测试对象是否为Json节点表示。 JsonElement类作为公共类可供您使用,可能并不是因为您想要子类化它,而是因为您想要测试它的子类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接