Gson-data-binding

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

Gson-データバインディング

データバインディングAPIは、プロパティアクセサーまたはアノテーションを使用してJSONをPOJO(Plain Old Java Object)との間で変換するために使用されます。 2つのタイプがあります。

  • Primitives Data Binding -JSONをJavaマップ、リスト、文字列、数値、ブール値、およびNULLオブジェクトとの間で変換します。
  • オブジェクトデータバインディング-JSONを任意のJAVAタイプとの間で変換します。

Gsonは、両方のタイプのデータバインディングのJSONを読み書きします。 データバインディングは、XMLのJAXBパーサーに似ています。

プリミティブデータバインディング

プリミティブデータバインディングとは、JSONからJAVA Coreデータ型および組み込みコレクションへのマッピングを指します。 Gsonは、プリミティブデータ型のシリアル化/逆シリアル化に使用できるさまざまな組み込みアダプターを提供します。

動作中のプリミティブデータバインディングを見てみましょう。 ここでは、JAVAの基本型をJSONに直接マッピングし、その逆も行います。

*C:\> Gson_WORKSPACE* に *GsonTester* という名前のJavaクラスファイルを作成します。
*_File-GsonTester.java_*
import java.util.Arrays;
import com.google.gson.Gson;

public class GsonTester {
   public static void main(String args[]) {

      Gson gson = new Gson();
      String name = "Mahesh Kumar";
      long rollNo = 1;
      boolean verified = false;
      int[] marks = {100,90,85};

     //Serialization
      System.out.println("{");
      System.out.println("name: " + gson.toJson(name) +",");
      System.out.println("rollNo: " + gson.toJson(rollNo) +",");
      System.out.println("verified: " + gson.toJson(verified) +",");
      System.out.println("marks:" + gson.toJson(marks));
      System.out.println("}");

     //De-serialization
      name = gson.fromJson("\"Mahesh Kumar\"", String.class);
      rollNo = gson.fromJson("1", Long.class);
      verified = gson.fromJson("false", Boolean.class);
      marks = gson.fromJson("[100,90,85]", int[].class);

      System.out.println("name: " + name);
      System.out.println("rollNo: " + rollNo);
      System.out.println("verified: " +verified);
      System.out.println("marks:" + Arrays.toString(marks));
   }
}

結果を検証する

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

C:\GSON_WORKSPACE>javac GsonTester.java

今すぐ GsonTester を実行して結果を確認します-

C:\GSON_WORKSPACE>java GsonTester

出力を確認します。

{
   name: "Mahesh Kumar",
   rollNo: 1,
   verified: false,
   marks:[100,90,85]
}

name: Mahesh Kumar
rollNo: 1
verified: false
marks:[100, 90, 85]