Gson - Ağaç Modeli

Ağaç Modeli, JSON belgesinin bir bellek içi ağaç gösterimini hazırlar. JsonObject düğümlerinden bir ağaç oluşturur. Esnek bir yaklaşımdır ve XML için DOM ayrıştırıcısına benzer.

JSON'dan Ağaç Oluştur

JsonParser, JSON'yi okuduktan sonra ağacın kök düğümüne bir işaretçi sağlar. Kök Düğüm, ağacın tamamını geçmek için kullanılabilir. Sağlanan bir JSON Dizesinin kök düğümünü almak için aşağıdaki kod parçacığını göz önünde bulundurun.

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

Geçiş Ağacı Modeli

Ağacı dolaşırken kök düğüme giden göreceli yolu kullanarak her düğümü alın ve verileri işleyin. Aşağıdaki kod parçacığı bir ağacı nasıl geçebileceğinizi gösterir.

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

Misal

Adlı bir Java sınıf dosyası oluşturun GsonTester C: \> GSON_WORKSPACE içinde.

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() + " ");  
         } 
      } 
   }   
}

Sonucu doğrulayın

Kullanarak sınıfları derleyin javac aşağıdaki gibi derleyici -

C:\GSON_WORKSPACE>javac GsonTester.java

Şimdi çalıştırın GsonTester sonucu görmek için -

C:\GSON_WORKSPACE>java GsonTester

Çıkışı doğrulayın.

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