Gson - model drzewa

Model drzewa przygotowuje reprezentację drzewa dokumentu JSON w pamięci. Tworzy drzewo węzłów JsonObject. Jest to elastyczne podejście i jest analogiczne do parsera DOM dla XML.

Utwórz drzewo z formatu JSON

JsonParser udostępnia wskaźnik do węzła głównego drzewa po odczytaniu kodu JSON. Węzeł główny może służyć do przechodzenia przez całe drzewo. Rozważ poniższy fragment kodu, aby pobrać węzeł główny podanego ciągu JSON.

//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);

Model drzewa przechodzenia

Pobierz każdy węzeł za pomocą ścieżki względnej do węzła głównego podczas przeglądania drzewa i przetwarzania danych. Poniższy fragment kodu pokazuje, jak można przechodzić przez drzewo.

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());

Przykład

Utwórz plik klasy Java o nazwie GsonTester w 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() + " ");  
         } 
      } 
   }   
}

Sprawdź wynik

Skompiluj klasy przy użyciu javac kompilator w następujący sposób -

C:\GSON_WORKSPACE>javac GsonTester.java

Teraz uruchom GsonTester aby zobaczyć wynik -

C:\GSON_WORKSPACE>java GsonTester

Sprawdź dane wyjściowe.

Name: Mahesh Kumar 
Age: 21 
Verified: No 
100 90 85