这两天在学习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数组,进而可以用它来做进一步的数据分析。