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