首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

应用自带JSONObject解析JSON数据

2013-08-13 
使用自带JSONObject解析JSON数据import org.json.JSONArrayimport org.json.JSONExceptionimport org.js

使用自带JSONObject解析JSON数据

import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;//获取解析的串,如下json串public static String getJsonString(String urlPath) throws Exception {  StringBuffer sb = new StringBuffer();  try {URL url = new URL(urlPath);          HttpURLConnection connection = (HttpURLConnection) url.openConnection();          connection.setConnectTimeout(50000);        connection.connect();          InputStream inputStream = connection.getInputStream();          //对应的字符编码转换          Reader reader = new InputStreamReader(inputStream, "UTF-8");          BufferedReader bufferedReader = new BufferedReader(reader);          String str = null;          while ((str = bufferedReader.readLine()) != null) {              sb.append(str);          }          reader.close();          connection.disconnect();  } catch (Exception e) {// TODO: handle exceptione.printStackTrace();System.out.println("连接超时。。。");return "timeout";}               return sb.toString();      }  


json字串 :

{"response":"ok","result":{"userList":[{"name":"9S7B_music_user","id":162,"type":2,"date":1375780379000,"pwd":"e10adc3949ba59abbe56e057f20f883e","cyCount":1,"ctCount":1,"myCount":1,"cgCount":21,"gold":11},{"name":"fred26","id":129,"type":2,"date":1375781355000,"pwd":"e10adc3949ba59abbe56e057f20f883e","cyCount":3,"ctCount":1,"myCount":1,"cgCount":7,"gold":3},{"name":"2VPL_music_user","id":170,"type":2,"date":1376032147000,"pwd":"e10adc3949ba59abbe56e057f20f883e","cyCount":1,"ctCount":1,"myCount":1,"cgCount":6,"gold":1},{"name":"T8D8_music_user","id":167,"type":2,"date":1375844980000,"pwd":"e10adc3949ba59abbe56e057f20f883e","cyCount":1,"ctCount":1,"myCount":1,"cgCount":6,"gold":15},{"name":"VFWR_music_user","id":159,"type":2,"date":1375777245000,"pwd":"e10adc3949ba59abbe56e057f20f883e","cyCount":1,"ctCount":1,"myCount":1,"cgCount":5,"gold":5},{"name":"dadaf","id":171,"type":2,"date":1376034139000,"pwd":"e10adc3949ba59abbe56e057f20f883e","cyCount":1,"ctCount":1,"myCount":1,"cgCount":4,"gold":2},{"name":"WGOL_music_user","id":166,"type":2,"date":1375843886000,"pwd":"e10adc3949ba59abbe56e057f20f883e","cyCount":1,"ctCount":1,"myCount":1,"cgCount":4,"gold":2}}]}}

相关方法

/** * 将上述json串转成对象列表 * @param jsonStr * @return * @throws Exception */public static  List jsonListToObjectList(String jsonStr)  throws Exception {List<User> userList = new ArrayList<User>();JSONObject jsonObject = new JSONObject(jsonStr);          String response = jsonObject.getString("response");          String json  = jsonObject.getString("result");        JSONObject jsonObject2 = new JSONObject(json);               if(jsonStr.indexOf("userList") > -1){          String uList = jsonObject2.getString("userList");          if(null != uList){          // JSONObject jsonObject4 = new JSONObject(uList);           JSONArray arry = jsonObject2.getJSONArray("userList");           for(int i=0;i<arry.length();i++){                    JSONObject jsonObject5=(JSONObject)arry.get(i);                    String name=jsonObject5.getString("name");                    String cgCount=jsonObject5.getString("cgCount");                    User user = new User();                    user.setName(name);                    user.setCgCount(Integer.parseInt(cgCount));                    userList.add(user);                }          }      }return userList;}public static Map jsonToObj(String jsonStr) throws Exception {          JSONObject jsonObject = new JSONObject(jsonStr);          String response = jsonObject.getString("response");          System.out.println("====================>response" +  response);        String json  = jsonObject.getString("result");        System.out.println("json=============>" + json);        JSONObject jsonObject2 = new JSONObject(json);                 String status = jsonObject2.getString("status");        System.out.println("stauts------------>" +status);        String name = "";        String uid = "";        String gold = "";        if(jsonStr.indexOf("user") > -1){        String userJson = jsonObject2.getString("user");        if(null !=userJson){            JSONObject jsonObject3 = new JSONObject(userJson);             name = jsonObject3.getString("name");            uid = jsonObject3.getString("id");            gold = jsonObject3.getString("gold");                System.out.println("name===>" + name);           }        }                HashMap map = new HashMap();                map.put("response", response);        map.put("status", status);        map.put("userName", name);        map.put("uid", uid);        map.put("gold", gold);        return map;                //        JSONArray  result=jsonObject.getJSONArray("result");//        //        JSONArray data=result.getJSONArray(0);                      //        int length = result.length();  //        for (int i = 0; i < length; i++) {  //            jsonObject = result.getJSONObject(1);  //            String childName = jsonObject.getString("Name");  //        }      }  public static Map jsonQuestionToObj(String jsonStr) throws Exception {          JSONObject jsonObject = new JSONObject(jsonStr);          String response = jsonObject.getString("response");          String json  = jsonObject.getString("result");        JSONObject jsonObject2 = new JSONObject(json);         String answer = null;        String gold = null;        String uid = "";        String qid = "";        String cgCount = "";        String name = "";        String tips = "";        String uqid = "";        String isQuestion = jsonObject2.getString("isQuestion");        if(isQuestion.equalsIgnoreCase("true")){        System.out.println("true------------------------->>>" + isQuestion);          if(jsonStr.indexOf("question") > -1){              String questionJson = jsonObject2.getString("question");              if(null != questionJson){               JSONObject jsonObject4 = new JSONObject(questionJson);                answer = jsonObject4.getString("answer");               tips = jsonObject4.getString("tips");               qid = jsonObject4.getString("id");               System.out.println("answer----------------------->" + answer);              }              }        }                 if(jsonStr.indexOf("user") > -1){        String userJson = jsonObject2.getString("user");        if(null !=userJson){            JSONObject jsonObject3 = new JSONObject(userJson);            uid = jsonObject3.getString("id");                 name = jsonObject3.getString("name");                gold = jsonObject3.getString("gold");                cgCount = jsonObject3.getString("cgCount");                System.out.println("name===>" + name);                           }        }                if(jsonStr.indexOf("userQuestion") > -1){        String userQuestionJson = jsonObject2.getString("userQuestion");        if(null !=userQuestionJson){            JSONObject jsonObject3 = new JSONObject(userQuestionJson);            uqid = jsonObject3.getString("qid");                                 System.out.println("name===>" + uqid);                           }        }                                        HashMap map = new HashMap();                map.put("isQuestion", isQuestion);        map.put("answer", answer);        map.put("qid", qid);        map.put("tips", tips);                map.put("response", response);        map.put("uid", uid);        map.put("name", name);        map.put("cgCount", cgCount);        map.put("gold", gold);                map.put("uqid", uqid);                return map;}

热点排行