gpt4 book ai didi

javascript - JS 结果集转 JSON

转载 作者:行者123 更新时间:2023-12-02 18:02:57 25 4
gpt4 key购买 nike

我从 XML 输出中克隆了以下代码。我需要输出为 JSON 对象而不是 XML 字符串,但缺少一些内容。

    public String evaluate() throws Exception
{
String itemTitle = "";
BoundStringBuilder data = new BoundStringBuilder();
TreeMap promptValues = ReportItem.promptValuesSetStringToTreeMap(promptValuesSet);
String debugFlag = isDebugMode ? "Y" : "N";

// get JSON item config settings
ExecuteProcedure ep = new ExecuteProcedure(con, "pkg_report.select_mr_JSON_config");
ep.setParam("p_report_number", reportNumber);
ep.setParam("p_instance_number", instanceNumber);
ep.setParam("p_item_index", itemIndex);
ep.setParam("p_path", null);
ResultSet JSONConfigRs = ep.execute()[0];
while(JSONConfigRs.next())
{
String setting = JSONConfigRs.getString("field_name");
String value = UtilityMethods.nullValue(JSONConfigRs.getString("value"), "").toLowerCase();

if(setting.equals("JSON_JSONREPORTITEM_ITEMNAME_BAN_ITEM_NAME"))
itemTitle = value;
}
JSONConfigRs.close();
ep.close();

// execute sql
ep = new ExecuteProcedure(con, "pkg_report.execute_mr_sql");
ep.setParam("p_report_number", reportNumber);
ep.setParam("p_instance_number", instanceNumber);
ep.setParam("p_item_index", itemIndex);
ep.setParam("p_item_type_code", itemTypeCode);
ep.setParam("p_sub_item_index", "1");
ep.setParam("p_sub_sub_item_index", "1");
ep.setParam("p_prompt_values", UtilityMethods.treeMapToList(promptValues));
ep.setParam("p_debug_flag", debugFlag);
ResultSet rs = ep.execute()[0];

ResultSetMetaData rsmd = rs.getMetaData();
String[] columnNames = new String[rsmd.getColumnCount()];
for(int i = 0; i < columnNames.length; i++)
columnNames[i] = rsmd.getColumnName(i + 1).toLowerCase();

data.append("<data name=\"").append(itemTitle).append("\">\n");

while(rs.next())
{
data.append("\t<row>\n");
for(int i = 0; i < columnNames.length; i++)
{
data.append("\t\t<cell name=\"").append(columnNames[i]).append("\">");
data.append(UtilityMethods.xmlFormat(UtilityMethods.screenFormat(rs.getString(i + 1)).trim()));
data.append("</cell>\n");
}
data.append("\t</row>\n");
}
rs.close();
ep.close();
data.append("</data>\n");

String JSONData = data.toString();
return JSONData;
}

有人建议我“您应该使用 GSON JSON 实用程序方法将结果集转储到 JSON 对象,而不是构建 XML 字符串。”

请有人给我指出正确的方向。我不熟悉 JSON 对象,如果这还不够明显的话;)

最佳答案

json.org 有一个简单的 API 您可以使用:http://json.org/java/

你可以这样做:

  • 遍历行
  • 为每一列创建一个包含名称/值对的 JSON 对象:

列={“列1”:123”}

  • 将每个列对象添加到行的数组

行 = [ { "列 1": 123"}, { "列 2": 456"} ]

  • 将每一行添加到数组

行= [ [ { "列1": 123"}, { "列2": 456"} ], [ { "列1": 111"}, { "列2": 222"} ]]

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

JSONArray rows = new JSONArray();
while(rs.next())
{
JSONArray columns = new JSONArray();
for(int i = 0; i < columnNames.length; i++)
{
JSONObject jsonObj = new JSONObject();
jsonObj.put(columnNames[i], rs.getString(i + 1));
columns.put(jsonObj);
}
rows.put(columns);
}
rs.close();
return rows.toString();

关于javascript - JS 结果集转 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com