gpt4 book ai didi

java - 将返回的 JSON 字符串转换为 JSONArray

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:57 24 4
gpt4 key购买 nike

我有一个执行数据库查询的 Web 服务,将结果集转换为 JSON 字符串并将字符串返回给客户端。这是转换器的代码(我从 http://biercoff.com/nice-and-simple-converter-of-java-resultset-into-jsonarray-or-xml/ 得到的):

public static String convertToJSON(ResultSet resultSet)
throws Exception {
JSONArray jsonArray = new JSONArray();
while (resultSet.next()) {
int total_rows = resultSet.getMetaData().getColumnCount();
JSONObject obj = new JSONObject();
for (int i = 0; i < total_rows; i++) {
obj.put(resultSet.getMetaData().getColumnLabel(i + 1)
.toLowerCase(), resultSet.getObject(i + 1));
}
jsonArray.add(obj);
}
return jsonArray.toJSONString();
}

在客户端应用程序中,当我打印返回的字符串时,它的格式如下:

[{"Column1":0.333333,"Column2":"FirmA"},{"Column1":0.666667,"Column2":"FirmB"}]

到目前为止一切都很好。我遇到的问题是将返回的字符串转换为 JSON 数组。我试过这个:

JSONArray arr = new JSONArray(JSON_STRING);

但收到以下错误消息:类 JSONArray 中的构造函数 JSONArray 无法应用于给定类型。我尝试先将其转换为 JSON 对象,如下所示:

JSONObject obj = new JSONObject(JSON_STRING);

但出现以下错误:类型不兼容:String 无法转换为 Map。我究竟做错了什么?谢谢。

最佳答案

显然问题出在我使用的 json 库上。一旦我使用了

import org.json.JSONArray;

一切顺利。我能够使用

将返回的字符串转换为数组
JSONArray arr = new JSONArray(JSON_STRING);

为了遍历这些值,我使用了这个答案中提供的代码:Accessing members of items in a JSONArray with Java为简单起见,我在这里复制:

for (int i = 0; i < arr.length(); ++i) {
JSONObject rec = arr.getJSONObject(i);
int id = rec.getInt("id");
String loc = rec.getString("loc");
// ...
}

关于java - 将返回的 JSON 字符串转换为 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843108/

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