现在有很多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数组。

[java] view plaincopyprint?

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

Java数据库ResultSet转json实现的更多相关文章

  1. Java数据库——ResultSet接口

    使用SQL中的SELECT语句可以查询出数据库的全部结果,在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容. 从user表中查询数据 //=== ...

  2. 学习总结 java 数据库 ResultSet 、PreparedStatement

    package com.hanqi.test; import java.sql.*; public class jdbcTest { public static void main(String[] ...

  3. 吴裕雄--天生自然JAVA数据库编程:ResultSet接口

    import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...

  4. JDBC与JAVA数据库编程

    一.JDBC的概念 1. JDBC (Java DataBase Connectivity) Java数据库连接 a) 主要提供java数据库应用程序的API支持 2. JDBC的主要功能 a) 创建 ...

  5. Java—数据库技术

    JDBC(Java Database Connection,Java数据库连接)是一种用于执行SQL语句的JavaAPI(应用程序设计接口),它由一些Java语言写的类和界面组成.JDBC提供了一种标 ...

  6. JAVA数据库基本操作 (转)

    JAVA数据库基本操作指南   Java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接. 一.取得数据库连接 1.用DriverManager取数据库连接 ...

  7. java数据库查询类

    通用查询数据库辅助类,可实现任意查询语句的查询,还可以进行多结果集查询. 类的代码: package com.hongyuan.db; import java.math.BigDecimal; imp ...

  8. JDBC之java数据库的连接与简单的sql语句执行

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  9. Java数据库操作大全

    1.提取单条记录 //import java.sql.*; Connection con=null; Statement stmt=null; ResultSet %%6=null; try { Cl ...

随机推荐

  1. 编写高质量代码改善C#程序的157个建议[勿选List<T>做基类、迭代器是只读的、慎用集合可写属性]

    前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议23.避免将List<T>作为自定义集合类的基 ...

  2. WCF安装Windows服务

    安装图解: 安装命令: 1. 开始 ->运行 ->cmd2. cd到C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319(Framework版本号按I ...

  3. Memcached——非关系型数据库分布式处理

    Memcached登录校验应用: MMCacheWriter.cs类 using Memcached.ClientLibrary; using System; using System.Collect ...

  4. 微信内置浏览器的JsAPI(WeixinJSBridge续)[转载]

    原文地址:  http://www.baidufe.com/item/f07a3be0b23b4c9606bb.html 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript ...

  5. 每天一个linux命令(40):watch命令

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个 ...

  6. Easyui使用记录

    一天就这搞了这几行. 1. if else 可以嵌套: 2. 子页面调用父页面js,需要使用top.父页面js的方法. <script type="text/javascript&qu ...

  7. C语言中memset(void *s, char ch,unsigned n)用的用法

    将指针s所指的内存空间中前n为重置为字符c 程序例: #include <string.h> #include <stdio.h> #include <memory.h& ...

  8. tomcat配置和优化

    转载: https://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=2651296654&idx=1&sn=b04fc6cecf ...

  9. [转]不再以讹传讹,GET和POST的真正区别

    原文地址:http://www.nowamagic.net/librarys/veda/detail/1919 如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个 ...

  10. 10 个免费的 jQuery 可视化编辑器插件

    富文本编辑器,也就是所见即所得的 HTML 编辑器,是网站一个非常重要的组件,特别是对于一些内容发布网站来说.本文介绍 10 个基于 jQuery 的可视化文本编辑器. MarkitUp markIt ...