智能电视网

电脑版
提示:原网页已由神马搜索转码, 内容由www.znds.com提供.
跳转到指定楼层
楼主
发表于 2013-8-28 16:27|只看该作者回帖奖励
  
  
  1. json数据格式解析我自己分为两种;  
      
    一种是普通的,一种是带有数组形式的;  
      
      
      
      
    普通形式的:  
    服务器端返回的json数据格式如下:  
      
    {"userbean":{"Uid":"100196","Showname":"u75afu72c2u7684u7334u5b50","Avtar":null,"State":1}}  
      
    分析代码如下:  
      
    // TODO 状态处理 500 200  
               int res = 0;  
               res = httpClient.execute(httpPost).getStatusLine().getStatusCode();  
               if (res == 200) {  
                   /*  
                   * 当返回码为200时,做处理  
                   * 得到服务器端返回json数据,并做处理  
                   * */  
                   HttpResponse httpResponse = httpClient.execute(httpPost);  
                   StringBuilder builder = new StringBuilder();  
                   BufferedReader bufferedReader2 = new BufferedReader(  
                       new InputStreamReader(httpResponse.getEntity().getContent()));  
                   String str2 =& quot;";  
                   for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2  
                       .readLine()) {  
                     builder.append(s);  
                   }  
                   Log.i("cat",& quot;>>>>>>" + builder.toString());  
      
    JSONObject jsonObject = new JSONObject(builder.toString())  
                     .getJSONObject("userbean");  
      
               String Uid;  
               String Showname;  
               String Avtar;  
               String State;  
      
               Uid = jsonObject.getString("Uid");  
               Showname = jsonObject.getString("Showname");  
               Avtar = jsonObject.getString("Avtar");  
               State = jsonObject.getString("State");  
    带数组形式的:  
    服务器端返回的数据格式为:  
      
    {"calendar":  
       {"calendarlist":  
             [  
             {"calendar_id":"1705","title":"(u4eb2u5b50)ddssd","category_name":"u9ed8u8ba4u5206u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false},  
             {"calendar_id":"1706","title":"(u65c5u884c)","category_name":"u9ed8u8ba4u5206u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false}  
             ]  
       }  
    }  
      
    分析代码如下:  
      
    // TODO 状态处理 500 200  
               int res = 0;  
               res = httpClient.execute(httpPost).getStatusLine().getStatusCode();  
               if (res == 200) {  
                   /*  
                   * 当返回码为200时,做处理  
                   * 得到服务器端返回json数据,并做处理  
                   * */  
                   HttpResponse httpResponse = httpClient.execute(httpPost);  
                   StringBuilder builder = new StringBuilder();  
                   BufferedReader bufferedReader2 = new BufferedReader(  
                       new InputStreamReader(httpResponse.getEntity().getContent()));  
                   String str2 =& quot;";  
                   for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2  
                       .readLine()) {  
                     builder.append(s);  
                   }  
                   Log.i("cat",& quot;>>>>>>" + builder.toString());  
                   /**  
                   * 这里需要分析服务器回传的json格式数据,  
                   */  
                   JSONObject jsonObject = new JSONObject(builder.toString())  
                       .getJSONObject("calendar");  
                   JSONArray jsonArray = jsonObject.getJSONArray("calendarlist");  
                   for(int i=0;i<jsonArray.length();i++){  
                     JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);  
                     CalendarInfo calendarInfo = new CalendarInfo();  
                     calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id"));  
                     calendarInfo.setTitle(jsonObject2.getString("title"));  
                     calendarInfo.setCategory_name(jsonObject2.getString("category_name"));  
                     calendarInfo.setShowtime(jsonObject2.getString("showtime"));  
                     calendarInfo.setEndtime(jsonObject2.getString("endshowtime"));  
                     calendarInfo.setAllDay(jsonObject2.getBoolean("allDay"));  
                     calendarInfos.add(calendarInfo);  
                   }  
      
    总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。
复制代码
JsonViewer.zip(44.23 KB, 下载次数: 192)[/I]2011-9-13 12:10 上传点击文件名   下载积分: 下载豆 -2   
  
  
  

上一篇:第二十九讲:WebView学习指南
下一篇:
android闹钟——原代码