这两天在学习ajax,其中传输数据要用到json,由于原来没有接触过,所以学起来很是麻烦,在经过一段时间的探索后,在同学的帮助下,对其数据的传输格式有了一定的了解。
接下来总结一下如何将从数据库获取的数据格式转化成json格式。
首先,要在自己的项目中导入jar包,截图如下:
然后自己写一个方法,因为好多返回的数据格式都是json的,所以可以将其写成一个静态方法类放在UTil包中(即和连接数据库的函数放在一起),到时候调用的时候就可以直接类名+函数名,代码如下:
public static String resultSetToJson(ResultSet rs) throws SQLException,JSONException { // json数组 JSONArray array = new JSONArray(); // 获取列数 ResultSetMetaData metaData = (ResultSetMetaData) rs.getMetaData(); int columnCount = metaData.getColumnCount(); System.out.println("列数"+columnCount); System.out.println(metaData.getColumnLabel(1)); System.out.println(metaData.getColumnLabel(2)); // 遍历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.add(jsonObj); } return array.toString(); }
第三步就是接收数据了,代码如下:
list = DBUtil.resultSetToJson(resultSet);
注:直接让得到的resultset进行格式转化,此时的list是一个String类型的变量,然后将这个变量发送到jsp中,进行接收。
第四步:接收,代码如下(在js之中接收,为了简单,没有用ajax,但是道理是一样的)
var JSONobject = <%=list%>;
JSONobject =eval(JSONobject);
此时的到的 JSONobject便是一个你想要的json数组,进而可以用它来做进一步的数据分析。