Google JSON Parsing Gson library: Quelle est la différence entre JsonElement et JsonObject?

public abstract class JsonElement extends Object 

Une classe représentant un élément de Json. Il peut s'agir d'un JsonObject, D'un JsonArray, D'un JsonPrimitive ou D'un JsonNull.

public final class JsonObject extends JsonElement 

une classe représentant un type d'objet dans Json. Un objet se compose de paires nom-valeur où les noms sont des chaînes, et les valeurs sont n'importe quel autre type de JsonElement. Cela permet de créer un arbre de JsonElements. Les éléments membres de cet objet sont maintenus dans l'ordre où ils ont été ajoutés.

Yay google!

oubliez cette question.

24
demandé sur Teddy 2012-06-08 23:16:04

2 réponses

JsonElement contient le code commun pour tous les types valides dans JSON:

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

cela vous permet d'écrire une méthode qui prend un JsonElement cela fonctionne avec l'un des types ci-dessus.

25
répondu Juan Mendes 2012-06-08 19:56:50

JsonElement est le type de base pour tous les différents types spécifiques - c'est une classe de base avec des choses communes que tous les noeuds devraient implémenter. Logiquement, cela fait beaucoup de sens.

la chose dont tous les types spécifiques héritent JsonElement c'est une bonne chose pour vous, trop. Il vous permet de tester si un objet est une représentation de noeud Json, simplement en vérifiant s'il hérite de JsonElement.

JsonElement classe est une classe publique probablement pas parce que vous voudriez le classer, mais parce que vous voudriez tester ses sous-classes.

4
répondu Sune Rasmussen 2012-06-08 19:35:46