Gson-ツリーモデル

ツリーモデルは、JSONドキュメントのメモリ内ツリー表現を準備します。JsonObjectノードのツリーを構築します。これは柔軟なアプローチであり、XMLのDOMパーサーに類似しています。

JSONからツリーを作成する

JsonParserは、JSONを読み取った後、ツリーのルートノードへのポインターを提供します。ルートノードは、ツリー全体をトラバースするために使用できます。提供された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);

トラバースツリーモデル

ツリーをトラバースしながらルートノードへの相対パスを使用して各ノードを取得し、データを処理します。次のコードスニペットは、ツリーをトラバースする方法を示しています。

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

名前の付いたJavaクラスファイルを作成します GsonTester 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() + " ");  
         } 
      } 
   }   
}

結果を確認する

を使用してクラスをコンパイルします javac 次のようにコンパイラ-

C:\GSON_WORKSPACE>javac GsonTester.java

今実行します GsonTester 結果を見るために-

C:\GSON_WORKSPACE>java GsonTester

出力を確認します。

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