zoukankan      html  css  js  c++  java
  • java servlet Json.org.jar

    本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址

    https://www.baiydu.com

    servlet我们可以把他当成一个数据媒介,他最终执行的是将方法体内获取处理后的数据,返回给请求的客户端,或以XML格式,或以JSON格式 ,我这里是使用的JSON格式数据,所以下面我要说org.json.jar这个库及我封装的返回数据的方式。

    这个库有两个核心类->JsonObject 和JsonArray

    一、JsonObject 

     JsonObject 这个类就相当于IOS中的NSDictionary,转换后是以键值对的方式将数据呈现给客户端调用人员,当然这里我们返回的是JSON字符,所以我们需要先将JsonObject .toString()一下,然后IOS就可以将这个JSON字符串转换成 字典NSDictioanry,然后就以键值对方式取值(如:NSString *name=[NSDictionary objectForKey("name")],由于android就是用java开发的,所以android开发人员可以直接使用这个类,将获取的json字符串反转回去成JsonObject 类取值(String name=JsonObject.get("name"))

    下面我贴数据库ResultSet转换成JSonObject的方法,这里有个重点就是JsonObject接受的其实是一个对象,他不是数组集合,所以这里如何数据库返回的

    ResultSet有多条数据他只能将第一条数据转换为它的,其实你可以把JSonArray当成一个JAVA中的泛型集合,他存放的类就是JSonObject类.
    public static JSONObject resultSetToJsonObject(ResultSet rs) throws SQLException,JSONException 
    { 
    // json对象
    JSONObject jsonObj = new JSONObject(); 
    // 获取列数 
    ResultSetMetaData metaData = rs.getMetaData(); 
    int columnCount = metaData.getColumnCount(); 
    // 遍历ResultSet中的每条数据 
    if (rs.next()) { 
    // 遍历每一列 
    for (int i = 1; i <= columnCount; i++) { 
    String columnName =metaData.getColumnLabel(i); 
    String value = rs.getString(columnName); 
    jsonObj.put(columnName, value); 
    } 
    } 
    return jsonObj; 
    }

    二、JsonArray