2012-06-08 10 views
20
public abstract class JsonElement extends Object 

Una classe che rappresenta un elemento di Json. Potrebbe essere un JsonObject, un JsonArray, un JsonPrimitive o un JsonNull.Libreria Json Parsing Gson di Google: Qual è la differenza tra JsonElement e JsonObject?

public final class JsonObject extends JsonElement 

Una classe che rappresenta un tipo di oggetto in Json. Un oggetto è costituito da coppie nome-valore in cui i nomi sono stringhe e i valori sono qualsiasi altro tipo di JsonElement. Ciò consente di creare un albero di JsonElements. Gli elementi membri di questo oggetto vengono mantenuti nell'ordine in cui sono stati aggiunti.

Yay google!

Non importa quella domanda.

risposta

19

JsonElement contiene codice comune per tutti i tipi validi in JSON:

  • JsonObject
  • JsonArray
  • JsonPrimitive (stringa, numero, booleano)
  • JsonNull

Questo permette si scrive un metodo che prende uno JsonElement che funziona con uno dei tipi sopra elencati.

3

JsonElement è il tipo di base per tutti i diversi tipi specifici: è una classe base con cose comuni che tutti i nodi dovrebbero implementare. Logicamente, questo ha molto senso.

La cosa che tutti i tipi specifici ereditano da JsonElement è una buona cosa anche per voi. Ti permette di verificare se un oggetto è una rappresentazione del nodo Json, semplicemente controllando se eredita da JsonElement.

La classe JsonElement è disponibile come classe pubblica probabilmente non perché la si vuole creare in una sottoclasse, ma perché si desidera testare le sue sottoclassi.