Java实现将ResultSet结果转成json格式

现在有很多json相关的Java工具,如json-lib、gson等,它们可以直接把JavaBean转换成json格式。

在开发中,可能会从数据库中获取数据,希望直接转成json数组,中间不通过bean。

 

比如进行下面的转换:

 

数据表:

id

name

age

1

xxg

23

2

xiaoming

20

 

转换成json数组:

[

            {

               "id": "1",

                "name":"xxg",

                "age": "23"

            },

            {

               "id": "2",

                "name":" xiaoming",

                "age":"20"

            }

]

 

实现很简单,就是把查询结果ResultSet的每一条数据转换成一个json对象,数据中的每一列的列名和值组成键值对,放在对象中,最后把对象组织成一个json数组。

 

  1. public String resultSetToJson(ResultSet rs) throws SQLException,JSONException  
  2. {  
  3.    // json数组  
  4.    JSONArray array = new JSONArray();  
  5.     
  6.    // 获取列数  
  7.    ResultSetMetaData metaData = rs.getMetaData();  
  8.    int columnCount = metaData.getColumnCount();  
  9.     
  10.    // 遍历ResultSet中的每条数据  
  11.     while (rs.next()) {  
  12.         JSONObject jsonObj = new JSONObject();  
  13.          
  14.         // 遍历每一列  
  15.         for (int i = 1; i <= columnCount; i++) {  
  16.             String columnName =metaData.getColumnLabel(i);  
  17.             String value = rs.getString(columnName);  
  18.             jsonObj.put(columnName, value);  
  19.         }   
  20.         array.put(jsonObj);   
  21.     }  
  22.     
  23.    return array.toString();  
  24. }  

 

上面的代码只需要用到org.json的jar包,网上随处可下载。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
ResultSet 转换为 JSON 可以通过以下步骤完成: 1. 首先,创建一个包含 ResultSet 数据的 ArrayList。 2. 将 ResultSet 中的每一行数据转换为一个 HashMap 对象。 3. 将每个 HashMap 对象添加到 ArrayList 中。 4. 使用 JSON 库将 ArrayList 转换为 JSON 字符串。 以下是一个示例代码: ```java import org.json.JSONArray; import org.json.JSONObject; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class ResultSetToJson { public static JSONArray convert(ResultSet resultSet) throws Exception { JSONArray jsonArray = new JSONArray(); ResultSetMetaData metaData = resultSet.getMetaData(); int columns = metaData.getColumnCount(); while (resultSet.next()) { Map<String, Object> map = new HashMap<String, Object>(); for (int i = 1; i <= columns; i++) { String columnName = metaData.getColumnName(i); Object columnValue = resultSet.getObject(columnName); map.put(columnName, columnValue); } jsonArray.put(map); } return jsonArray; } public static void main(String[] args) throws Exception { // TODO: Replace with your SQL query and connection details ResultSet resultSet = MyDbConnection.executeQuery("SELECT * FROM my_table"); JSONArray jsonArray = ResultSetToJson.convert(resultSet); String jsonString = jsonArray.toString(); System.out.println(jsonString); } } ``` 其中,MyDbConnection.executeQuery() 是自定义方法,用于执行 SQL 查询并返回 ResultSet 对象。你需要根据自己的数据库连接方式进行修改。 上述代码中,我们使用了 JSON 库中的 JSONArray 和 JSONObject 类来创建 JSON 数据。在循环中,我们将每一行 ResultSet 转换为一个 HashMap 对象,并将其添加到 JSON 数组中。最后,我们将 JSON 数组转换为字符串并打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值