java - 将 json 字符串转换为列表或 map

标签 java json gson

我在服务器端得到一个 json 字符串,如下

[     {"projectFileId":"8547",
       "projectId":"8235",
       "fileName":"1",
       "application":"Excel",
       "complexity":"NORMAL",
       "pageCount":"2",
       "targetLanguages":" ar-SA",
       "Id":"8547"
      },
      {"projectFileId":"8450",
       "projectId":"8235",
       "fileName":"Capacity Calculator.pptx",
       "application":"Powerpoint",
       "complexity":"NORMAL",
       "pageCount":"100",
       "targetLanguages":" ar-LB, ar-SA",
       "Id":"8450"
      }
]

我想将此字符串转换为数组列表或映射(尽可能),以便我可以迭代它并获取字段值。

最佳答案

您可以使用GSON library 。只需使用 Gson#fromJson()将 JSON 字符串转换为 Java 对象的方法。

示例代码:

BufferedReader reader = new BufferedReader(new FileReader(new File("json.txt")));
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Map<String, String>>>() {}.getType();
ArrayList<Map<String, String>> data = gson.fromJson(reader, type);

// convert back to JSON string from object
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(data));
<小时/>

您可以创建一个 POJO 类,将其直接转换为 POJO 类对象列表,以便轻松访问它。

示例代码:

class PojectDetail{
    private String projectFileId;
    private String projectId;
    private String fileName;
    private String application;
    private String complexity;
    private String pageCount;
    private String targetLanguages;
    private String Id;
    // getter & setter
}

Gson gson = new Gson();
Type type = new TypeToken<ArrayList<PojectDetail>>() {}.getType();
ArrayList<PojectDetail> data = gson.fromJson(reader, type);

关于java - 将 json 字符串转换为列表或 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24939724/

相关文章:

android - 使用 ByteArrayOutputStream 使用流式 GSON 获取 JSON 字符串获取 OutOfMemoryError

java - 如何在 Struts 2 中仅获取特定字段作为响应

java - 使用 hibernate 连接到远程数据库时出现问题

java - 服务器非托管线程中出现无法解释的 ClassNotFoundException

javascript - 第二次调用后Json String不显示

Java gson 转换错误

java - 创建一个随机的 4 位数字,并将其存储到一个字符串中

json - 在 Scala 中使用 circe 解码结构化 JSON 数组

javascript - 将 JS 数组 UNIX 日期整数转换为 JS Date 对象

java - 适用于 Android 和 GSON 的 ProGuard