将JDBC ResultSet解析为JSON格式
来源:互联网 发布:知乎 出差神器 编辑:程序博客网 时间:2024/06/15 16:07
JSON (JavaScript Object Notation) is a lightweight data-interchange format.
JSON建构于两种结构:
- “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
- 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
在Java中使用json,除了通过javabean等一些方法外,还可以直接操作ResultSet。
实现ResultSet接口后,可以将其转化为常见对象,如json,list,map,数组等等。这里只实现了ResultSet –> json.
1.实现ResultSetHandler接口
public interface RsHandler<T> { /** * Turn the <code>ResultSet</code> into an Object. * * @param rs 要操作的数据集 * @return 返回特定格式的resultset对象 * @throws SQLException 数据库异常 */ T handle(ResultSet rs) throws SQLException;}
2.定义一个JSONHandler处理ResultSet接口
public class JsonHandler implements RsHandler<JSONArray>{}
实现这个接口
@Override public JSONArray handle(ResultSet rs) throws SQLException { //创建一个JSONArray对象 JSONArray jsonArray = new JSONArray(); //获得ResultSetMeataData对象 ResultSetMetaData rsmd = rs.getMetaData(); while (rs.next()) { //定义json对象 JSONObject obj = new JSONObject(); //判断数据类型&获取value getType(rs, rsmd, obj); //将对象添加到JSONArray中 jsonArray.put(obj); } return jsonArray; }
根据数据类型获取数据
private void getType(ResultSet rs, ResultSetMetaData rsmd, JSONObject obj) throws SQLException { int total_rows = rsmd.getColumnCount(); for (int i = 0; i < total_rows; i++) { String columnName = rsmd.getColumnLabel(i + 1); if (obj.has(columnName)) { columnName += "1"; } try { switch (rsmd.getColumnType(i + 1)) { case java.sql.Types.ARRAY: obj.put(columnName, rs.getArray(columnName)); break; case java.sql.Types.BIGINT: obj.put(columnName, rs.getInt(columnName)); break; case java.sql.Types.BOOLEAN: obj.put(columnName, rs.getBoolean(columnName)); break; case java.sql.Types.BLOB: obj.put(columnName, rs.getBlob(columnName)); break; case java.sql.Types.DOUBLE: obj.put(columnName, rs.getDouble(columnName)); break; case java.sql.Types.FLOAT: obj.put(columnName, rs.getFloat(columnName)); break; case java.sql.Types.INTEGER: obj.put(columnName, rs.getInt(columnName)); break; case java.sql.Types.NVARCHAR: obj.put(columnName, rs.getNString(columnName)); break; case java.sql.Types.VARCHAR: obj.put(columnName, rs.getString(columnName)); break; case java.sql.Types.TINYINT: obj.put(columnName, rs.getInt(columnName)); break; case java.sql.Types.SMALLINT: obj.put(columnName, rs.getInt(columnName)); break; case java.sql.Types.DATE: obj.put(columnName, rs.getDate(columnName)); break; case java.sql.Types.TIMESTAMP: obj.put(columnName, rs.getTimestamp(columnName)); break; default: obj.put(columnName, rs.getObject(columnName)); break; } } catch (JSONException e) { e.printStackTrace(); } } }
数据表:
解析结果:
[ { "mymoney": "100", "name": "aa", "id": 1 }, { "mymoney": "20", "name": "bb", "id": 2 }, { "mymoney": "50", "name": "cc", "id": 3 }]
1 0
- 将JDBC ResultSet解析为JSON格式
- java 将 ResultSet 转化为 json格式
- eval将数据解析为Json格式
- Java如何将json格式字符串解析为json对象
- js操作cookie,将字符串数据解析为json格式
- 将Stanford CoreNLP的解析结果构造为json格式
- Java实现将ResultSet结果转成json格式
- 将resultSet转换为list(jdbc sql获取rs)
- 数据解析为json格式
- jsonobject将json格式字符串转化为对象时,日期格式错误解析
- 后台将对象转换为json格式,前台js解析json数据,将字符串转化为数组
- java将xml解析,然后将其转换为json格式(①)
- java将xml解析,然后将其转换为json格式(②)
- java将xml解析,然后将其转换为json格式(1)
- ios json格式解析为为NSDictionary
- 解析json将json转化为DataTable
- 将数组转换为json格式字符串
- 如何将字符串转化为json格式
- ubuntu配置开机启动服务
- maven 官方快速教程
- 如何使用Markdown编辑器写博客
- 取读浮点数
- 介绍Web 2.0 编程思想:16条法则
- 将JDBC ResultSet解析为JSON格式
- as(android studio)的初次使用
- Android学习笔记(三):关于像素的一些知识
- Keil uVision(MDK)软件使用
- 转:Source Insight中多行注释
- QPPc 工程更新,与QPPs通信
- AndroidStudio快捷键Search/Replace
- 潜在语义分析
- MYSQL命令大全