当前位置: 代码迷 >> JavaScript >> 应用自带JSONObject解析JSON数据
  详细解决方案

应用自带JSONObject解析JSON数据

热度:305   发布时间:2013-08-13 16:43:28.0
使用自带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 exception
			e.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;
	}


  相关解决方案