web-dev-qa-db-ja.com

GoogleのJson Parsing Gsonライブラリ:JsonElementとJsonObjectの違いは何ですか?

public abstract class JsonElement extends Object 

Jsonの要素を表すクラス。 JsonObject、JsonArray、JsonPrimitive、またはJsonNullのいずれかです。

public final class JsonObject extends JsonElement 

Jsonのオブジェクト型を表すクラス。オブジェクトは名前と値のペアで構成され、名前は文字列で、値はその他のタイプのJsonElementです。これにより、JsonElementsのツリーを作成できます。このオブジェクトのメンバー要素は、追加された順に維持されます。

やあグーグル!

その質問は気にしないでください。

34
Teddy

JsonElementには、JSONのすべての有効なタイプの共通コードが含まれています。

  • JsonObject
  • JsonArray
  • JsonPrimitive(文字列、数値、ブール)
  • JsonNull

これにより、上記のタイプのいずれかで機能するJsonElementを取るメソッドを作成できます。

30
Juan Mendes

JsonElementは、さまざまな特定のタイプすべての基本タイプです。これは、すべてのノードが実装する必要のある共通のものを備えた基本クラスです。論理的には、これは非常に理にかなっています。

すべての特定の型がJsonElementから継承することも、あなたにとって良いことです。 JsonElementから継承するかどうかを確認するだけで、オブジェクトがJsonノード表現であるかどうかをテストできます。

JsonElementクラスは、おそらくサブクラス化するのではなく、そのサブクラスをテストするために、パブリッククラスとして使用できます。

4
Sune Rasmussen