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数组。

    public String resultSetToJson(ResultSet rs) throws SQLException,JSONException
    {
       // json数组
       JSONArray array = new JSONArray();
      
       // 获取列数
       ResultSetMetaData metaData = rs.getMetaData();
       int columnCount = metaData.getColumnCount();
      
       // 遍历ResultSet中的每条数据
        while (rs.next()) {
            JSONObject jsonObj = new JSONObject();
           
            // 遍历每一列
            for (int i = 1; i <= columnCount; i++) {
                String columnName =metaData.getColumnLabel(i);
                String value = rs.getString(columnName);
                jsonObj.put(columnName, value);
            } 
            array.put(jsonObj); 
        }
      
       return array.toString();
    }

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


作者:叉叉哥   转载请注明出处:http://blog.csdn.net/xiao__gui/article/details/8612503



  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 35
    评论
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 数组转换为字符串并打印出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值