Gson - Modelo de árbol
Tree Model prepara una representación de árbol en memoria del documento JSON. Construye un árbol de nodos JsonObject. Es un enfoque flexible y es análogo al analizador DOM para XML.
Crear árbol desde JSON
JsonParser proporciona un puntero al nodo raíz del árbol después de leer el JSON. El nodo raíz se puede utilizar para recorrer el árbol completo. Considere el siguiente fragmento de código para obtener el nodo raíz de una cadena JSON proporcionada.
//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);
Modelo de árbol transversal
Obtenga cada nodo usando la ruta relativa al nodo raíz mientras atraviesa el árbol y procesa los datos. El siguiente fragmento de código muestra cómo atravesar un árbol.
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());
Ejemplo
Cree un archivo de clase Java llamado GsonTester en 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 el resultado
Compila las clases usando javac compilador de la siguiente manera:
C:\GSON_WORKSPACE>javac GsonTester.java
Ahora ejecuta el GsonTester para ver el resultado -
C:\GSON_WORKSPACE>java GsonTester
Verifique la salida.
Name: Mahesh Kumar
Age: 21
Verified: No
100 90 85