学而实习之 不亦乐乎

Java:数据库ResultSet转json实现

2020-08-09 15:34:27

在开发中,可能会需要从数据库中获取数据,并直接转成json数组。比如:

数据表:
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包。