java - 从数据库查询重新格式化 json

标签 java mysql json multidimensional-array

这是我现在的

[{
    "year": "2015",
    "org_name": "MOOE",
    "suborg_name": "Forms Expenses",
    "amt": "2",
    "org_id": "4",
    "suborg_id": "24"
}, {
    "year": "2016",
    "org_name": "MOOE",
    "suborg_name": "Forms Expenses",
    "amt": "1",
    "org_id": "4",
    "suborg_id": "24"
}]

我想要这种格式

[{
    "org_name": "MOOE",
    "suborg_name": "Forms Expenses",
    "suborg_id": "24",
    "org_id": "4",
    "Year": [{
        "year": "2015",
        "amt": "2"
    }, {
        "year": "2016",
        "amt": "1"
    }]
}]

以下是我获取当前值的方法:

List<String> list = new ArrayList<String>();
while (rs2.next()) {
    JSONObject json = new JSONObject();

    if (!rs2.getString("suborg_id").isEmpty()) {
        json.put("org_name", org_name);
        json.put("year", year);
        json.put("suborg_name", suborg_name);
        json.put("amt", amt);
        json.put("org_id", org_id);
        json.put("suborg_id", suborg_id);
    }

    finaljson2.put(counter2, json.toString());
    counter2++;
    list.add("" + json + "");
}

//out.println("[" + finaljson2.toString() + "]");
out.println(list);

我放入 if 语句,希望它能够将相同的 suborg_id 分组

更新

在推送到 json 之前尝试将年份和金额添加到新数组

List<String> list = new ArrayList<String>();
while (rs2.next()) {
    JSONObject json = new JSONObject();
    JSONObject json1 = new JSONObject();

    if (!rs2.getString("suborg_id").isEmpty()) {

        json.put("year", year);
        json.put("amt", amt);


        json.put("org_name", org_name);
        json.put("suborg_name", suborg_name);
        json.put("org_id", org_id);
        json.put("suborg_id", suborg_id);
        json.put("year", json1);
    }

    finaljson2.put(counter2, json.toString());
    counter2++;
    list.add("" + json + "");
}

//out.println("[" + finaljson2.toString() + "]");
out.println(list);

我的输出如下:

[{
    "org_name": "MOOE",
    "suborg_name": "Forms Expenses",
    "org_id": "4",
    "suborg_id": "24",
    "year": {
        "year": "2015",
        "amt": "2"
    }
}, {
    "org_name": "MOOE",
    "suborg_name": "Forms Expenses",
    "org_id": "4",
    "suborg_id": "24",
    "year": {
        "year": "20165",
        "amt": "1"
    }
}]

我的目标是获得格式

[{
    "org_name": "MOOE",
    "suborg_name": "Forms Expenses",
    "suborg_id": "24",
    "org_id": "4",
    "Year": [{
        "year": "2015",
        "amt": "2"
    }, {
        "year": "2016",
        "amt": "1"
    }]
}]

最佳答案

试试这个

  List<String> list = new ArrayList<String>();
  while (rs2.next()) {
  JSONObject json = new JSONObject();
 if (!rs2.getString("suborg_id").isEmpty()) {
 json.put("org_name", org_name);
 json.put("suborg_name", suborg_name);
 json.put("org_id", org_id);
 json.put("suborg_id", suborg_id);
 json.put("year");  

 [{
   json.put("year", year);  
   json.put("amt", amt);
  },{
   json.put("year", year);  
  json.put("amt", amt);
  }]

 }
finaljson2.put(counter2, json.toString());
counter2++;
list.add("" + json + "");
}

关于java - 从数据库查询重新格式化 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39115719/

相关文章:

java - Android计算2个GPS坐标之间的角度

java - 不幸的是,Myapp在输入登录详细信息后已停止

json - 从 Go 中的 JSON 文件打印值

java - 最简单的扑克手评估算法

mysql - 未使用配置单元 MySQL Metastore 中的 Spark 构建

MySQL在特定位置添加新列

mysql - Perl DBI 模块中的操作失败未指示错误

jQuery JSONP 安全性

javascript - fullcalendar - 结束/开始事件的日期格式

java - Windows上的声音等级听起来层次分明