java - 使用 Google Gson 创建 json

标签 java json jsp jakarta-ee

我想要制作 json

records":[ {"MON_PRIORITY":"","MON_ICR_ACCNO":"100000010010","MON_REPORT_DATE":"","MON_STATUS":"",

但是我的json是

   {"MON_PRIORITY":"","MON_ICR_ACCNO":"100000010010","MON_REPORT_DATE":"","MON_STATUS":"",

我的jsp代码是

HashMap  jsonRecordval = (HashMap) hshValues.get("jsonRecord");
String json="";
json = new Gson().toJson(jsonRecordval );

谢谢..

最佳答案

您得到的是 Hashmap 生成的 JSON。例如{“键”:“值”}。分割一下,您想要的 json 是对象 { 的表示,其中记录字段 "records" 包含数组 [ HashMap 的内容 {"key":"value"}

要做到这一点,最简单的方法是创建一个对象,其中的实例变量与预期输出的字段相对应。类似的东西

public class JsonRecords {
    private final List<HashMap> records = new ArrayList<>;

    public JsonRecords(HashMap recordsVal) {
        records.add(recordsVal);
    }

    //Getters and setters
}

然后用它来构建您的 JSON

HashMap  jsonRecordval = (HashMap) hshValues.get("jsonRecord");
String json = new Gson().toJson(new JsonRecords(jsonRecordval));

关于java - 使用 Google Gson 创建 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558386/

相关文章:

java - 从当前 URL 获取 HTTP 或 HTTPS

java - 堆内存如何工作的说明(Java)

java - 如何使用多个 Facebook 帐户登录?

javascript - 客户端接收json对象到javascript

java - 有没有更好的方法将数字转换为 Java 中具有可变十进制精度的填充字符串?

java - AsyncTask 和网络丢失的问题

ios - 从 iOS 中的 JIRA Web 服务获取 JSON 响应

java - 选择选项列表仅更改值,但不更改 JQuery 的 Activity 标签

java - URL 根 Java Servlet

java - Hibernate 和键值对实现