java - 如何将自定义类的 ArrayList 转换为 Java 中的 JsonArray?

标签 java arraylist gson arrays

我正在尝试将自定义类的 ArrayList 转换为 JsonArray。下面是我的代码。它执行得很好,但是一些 JsonArray 元素作为 0 出现,即使它们是 ArrayList 中的数字。我试图将它们打印出来。就像 ArrayList 中的 customerOne 年龄是 35 但在 JsonArray 中是 0。有什么问题?

    ArrayList<Customer> customerList = CustomerDB.selectAll();
    Gson gson = new Gson();

    JsonElement element = 
     gson.toJsonTree(customerList , new TypeToken<List<Customer>>() {}.getType());

    JsonArray jsonArray = element.getAsJsonArray();

最佳答案

以下代码应该适用于您的情况。

List<Customer> customerList = CustomerDB.selectAll();

Gson gson = new Gson();
JsonElement element = gson.toJsonTree(customerList, new TypeToken<List<Customer>>() {}.getType());

if (! element.isJsonArray() ) {
// fail appropriately
    throw new SomeException();
}

JsonArray jsonArray = element.getAsJsonArray();

哎呀,使用 List 接口(interface)在转换 JSON 树之前收集值。

关于java - 如何将自定义类的 ArrayList 转换为 Java 中的 JsonArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857884/

相关文章:

java - 如何检查任何数组列表是否包含特定字符串

java - 强制 GSON 一般使用包含 Setter 或 Setter 的构造函数,而不是 Fields

java - 如何使用 .equals() 方法比较两个 StringBuffer 对象?

java - 如何使用分页进行动态 Spring (Boot) JPA 查询?

java - 我正在从文本文件中读取数组,然后我应该大写字母,计算每个名称的出现次数,然后显示所有信息。

java - 使用 GSON 将对象转换为 json 时出现 OutOfMemoryError

java - 如何用空格返回我的字符串值

java - 在jsp中迭代表行

java - 使用 for 循环打印数字的每个数字

java - 从 Arrays.asList 返回的列表是否保持与原始数组集合相同的顺序?