Gson-tree-model

提供:Dev Guides
移動先:案内検索

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

C:\> GSON_WORKSPACEに GsonTester という名前のJavaクラスファイルを作成します。

*_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