Gson - Modello ad albero
Tree Model prepara una rappresentazione ad albero in memoria del documento JSON. Costruisce un albero di nodi JsonObject. È un approccio flessibile ed è analogo al parser DOM per XML.
Crea albero da JSON
JsonParser fornisce un puntatore al nodo radice dell'albero dopo aver letto il JSON. Il nodo radice può essere utilizzato per attraversare l'intero albero. Considera il seguente frammento di codice per ottenere il nodo radice di una stringa JSON fornita.
//Create an JsonParser instance
JsonParser parser = new JsonParser();
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//create tree from JSON
JsonElement rootNode = parser.parse(jsonString);
Modello di albero trasversale
Ottieni ogni nodo utilizzando il percorso relativo al nodo radice mentre attraversi l'albero ed elabora i dati. Il frammento di codice seguente mostra come attraversare un albero.
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
Esempio
Crea un file di classe Java denominato GsonTester in C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
public class GsonTester {
public static void main(String args[]) {
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
JsonParser parser = new JsonParser();
JsonElement rootNode = parser.parse(jsonString);
if (rootNode.isJsonObject()) {
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
JsonElement verifiedNode = details.get("verified");
System.out.println("Verified: " + (verifiedNode.getAsBoolean() ? "Yes":"No"));
JsonArray marks = details.getAsJsonArray("marks");
for (int i = 0; i < marks.size(); i++) {
JsonPrimitive value = marks.get(i).getAsJsonPrimitive();
System.out.print(value.getAsInt() + " ");
}
}
}
}
Verifica il risultato
Compila le classi usando javac compilatore come segue -
C:\GSON_WORKSPACE>javac GsonTester.java
Ora esegui il file GsonTester per vedere il risultato -
C:\GSON_WORKSPACE>java GsonTester
Verifica l'output.
Name: Mahesh Kumar
Age: 21
Verified: No
100 90 85