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

时间:2012-06-08 19:16:04

标签: java android gson

public abstract class JsonElement extends Object 

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

public final class JsonObject extends JsonElement 

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

是的谷歌!

没关系。

2 个答案:

答案 0 :(得分:29)

JsonElement包含JSON中所有有效类型的公共代码:

  • 的JSONObject
  • JsonArray
  • JsonPrimitive(string,number,boolean)
  • JsonNull

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

答案 1 :(得分:4)

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

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

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