Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java】Gsonを使って配列・ArrayListをJsonArrayに変換する方法

Javaの配列(Array)は、同じ型の複数の変数を格納するためのオブジェクトであり、プリミティブ型やオブジェクト参照の両方を保持できます。一方、ArrayListはサイズが動的に変更可能なリスト構造を表現しており、要素の追加・削除・検索・ソート・置換といった操作を柔軟に行うことができます。

JsonArrayは、文字列からJSONテキストを解析し、ベクター(Vector)のようなオブジェクトとして扱える構造です。Javaの配列やArrayListをJsonArrayに変換するには、Gsonクラスが提供するtoJsonTree().getAsJsonArray()メソッドを使用します。

構文

public JsonElement toJsonTree(java.lang.Object src)

toJsonTree()メソッドは、引数として渡されたJavaオブジェクト(src)を対応するJsonElementのツリー構造へシリアライズします。その戻り値に対してgetAsJsonArray()を呼び出すことで、結果をJsonArrayとして取得できます。

サンプルコード

import com.google.gson.*;
import java.util.*;

public class JavaArrayToJsonArrayTest {
   public static void main(String args[]) {
      String[][] strArray = {{"elem1-1", "elem1-2"}, {"elem2-1", "elem2-2"}};
      ArrayList<ArrayList<String>> arrayList = new ArrayList<>();
      for(int i = 0; i < strArray.length; i++) {
         ArrayList<String> nextElement = new ArrayList<>();
         for(int j = 0; j < strArray[i].length; j++) {
            nextElement.add(strArray[i][j] + "-B");
         }
         arrayList.add(nextElement);
      }
      JsonObject jsonObj = new JsonObject();
      // 配列をJsonArrayへ変換
      JsonArray jsonArray1 = new Gson().toJsonTree(strArray).getAsJsonArray();
      // ArrayListをJsonArrayへ変換
      JsonArray jsonArray2 = new Gson().toJsonTree(arrayList).getAsJsonArray();
      jsonObj.add("jsonArray1", jsonArray1);
      jsonObj.add("jsonArray2", jsonArray2);
      System.out.println(jsonObj.toString());
   }
}

このサンプルでは、まず二次元のString配列を作成し、それを元にネストしたArrayListを構築しています。続いてGsonインスタンスを生成し、toJsonTree(strArray)およびtoJsonTree(arrayList)の戻り値に対してgetAsJsonArray()を呼び出すことで、それぞれをJsonArrayに変換しています。最後に、両方のJsonArrayをJsonObjectに追加して出力しています。

実行結果

{"jsonArray1":[["elem1-1","elem1-2"],["elem2-1","elem2-2"]],"jsonArray2":[["elem1-1-B","elem1-2-B"],["elem2-1-B","elem2-2-B"]]}

このように、配列とArrayListのどちらも同じメソッドチェーン(toJsonTree().getAsJsonArray())でJsonArrayへ変換できます。Gsonを活用すれば、JavaオブジェクトからJSON形式への変換処理を簡潔かつ統一的に記述できるのが大きなメリットです。

  1. GSONライブラリを使ってArrayListをStringに変換する方法【Android開発】

    GSONとはGSONはGoogleが提供するJavaライブラリで、JavaオブジェクトをJSONへ、またJSONをJavaオブジェクトへ相互に変換するために使用されます。内部ではシリアライズ(直列化)とデシリアライズ(非直列化)の仕組みに基づいて動作しています。この記事では、GSONライブラリを使用してArrayListを文字列(String)に変換する方法を、サンプルコード付きの手順で解説します。実装手順ステップ1:新規プロジェクトの作成まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力して

  2. 【Android】配列をArrayListに変換する方法をサンプルコード付きで解説

    このチュートリアルでは、Androidアプリ開発において配列(Array)をArrayListに変換する方法を、実際のサンプルコードとともにわかりやすく解説します。 配列からArrayListへの変換の基本 Javaでは、Arrays.asList()メソッドを使うことで、配列をリスト形式に変換できます。さらに、その結果をArrayListのコンストラクタに渡すことで、要素の追加や削除が自由に行える本格的なArrayListとして扱えます。 String[] array = new String[]{ANDROID, JSP, JAVA, STRUTS, HADOOP, JSF}; Arra