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

最新文章

  1. 问题-MyBatis不识别Integer值为0的数据
  2. Android 之 json数据的解析(jsonReader)
  3. 课题:如何培养自己的SEO资源
  4. Unity重力的测试
  5. Masonry+Infinite-Scroll实现无刷新无分页完美瀑布流(转)
  6. sencha touch 2 tabpanel中List的不显示问题,解决方案
  7. SendMessage用法实例
  8. 上传列表集合wsp包
  9. struts2-请求参数校验
  10. iOS 懒加载模式
  11. LINUX配置过程记录(二) 工具安装
  12. HTTP请求中POST与GET的区别
  13. PySpider HTTP 599: SSL certificate problem错误的解决方法
  14. FZU软工第五次作业-词组频率分析
  15. springMvc 简单搭建
  16. 本地ip变化,自定义IP地址
  17. python get请求
  18. 【工具推荐】截图工具 Snipaste
  19. eclipse在运行main方法时在console里面报内存溢出的错误解决办法
  20. 配置consul为windows服务

热门文章

  1. No plugin found for prefix &#39;jetty&#39; in the current project and in the plugin groups 【转】
  2. linux查看cpu、内存、版本信息
  3. 软工实践个人练习-使用github进行代码管理
  4. javax.servlet.ServletException: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z
  5. Spring-dispatcherServlet
  6. jQuery 文本编辑器插件 HtmlBox 使用
  7. 【SDOI2009】解题汇总
  8. BZOJ-3130 费用流 (听题目胡扯丶裸最大流) 二分判定+最大流+实数精度乱搞
  9. poj 3070 矩阵快速幂模板
  10. java分页