如何使用 Java 中的 Gson 将 Java 数组或 ArrayList 转换为 JsonArray?

javajsonobject oriented programmingprogramming

Java Arrays  是存储多个 相同类型 变量的对象,它包含原始类型和对象引用,ArrayList 可以表示可调整大小的对象列表。我们可以使用该列表添加、删除、查找、排序和替换元素。JsonArray  可以从字符串解析文本以生成类似 vector 的对象。我们可以使用 Gson  类的 toJsonTree().getAsJsonArray() 方法将数组或 ArrayList 转换为 JsonArray。

语法

public JsonElement toJsonTree(java.lang.Object src)

示例

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

输出

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

相关文章