json数据格式解析我自己分为两种;

一种是普通的,一种是带有数组形式的;


 

普通形式的:
服务器端返回的json数据格式如下:

{
" userbean " :{ " Uid " : " 100196 " , " Showname " : " \u75af\u72c2\u7684\u7334\u5b50 " , " 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 
=   ""
                    
for  (String s  =  bufferedReader2.readLine(); s  !=   null ; s  =  bufferedReader2 
                            .readLine()) { 
                        builder.append(s); 
                    } 
                    Log.i(
" cat " " >>>>>> "   +  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 " : " (\u4eb2\u5b50)ddssd " , " category_name " : " \u9ed8\u8ba4\u5206\u7c7b " , " showtime " : " 1288927800 " , " endshowtime " : " 1288931400 " , " allDay " : false }, 
            {
" calendar_id " : " 1706 " , " title " : " (\u65c5\u884c) " , " category_name " : " \u9ed8\u8ba4\u5206\u7c7b " , " 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 
=   ""
                    
for  (String s  =  bufferedReader2.readLine(); s  !=   null ; s  =  bufferedReader2 
                            .readLine()) { 
                        builder.append(s); 
                    } 
                    Log.i(
" cat " " >>>>>> "   +  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。

更多相关文章

  1. Android客户端和服务器端数据交互的第一种方法
  2. Android NDK:JNI 数组的输入输出
  3. Android客户端连接PC服务器端(Socket连接)
  4. Android下调用webservice的服务器端和客户端详解
  5. android byte[]数组,bitmap,drawable之间的相互转换
  6. Android:读取本地相册与相机获取图片上传到服务器(用字符串的形式
  7. Android Notification 用法的4种形式
  8. Android实例] android获取web服务器端session并验证登陆

随机推荐

  1. Javascript / Jquery中的简单碰撞检测?
  2. 在contenteditable中的占位符—焦点事件
  3. CasperJs和Jquery用链式选择
  4. 当函数在单独的PHP文件中定义时,调用JavaS
  5. 用javascript 禁止右键,禁止复制,禁止粘
  6. hzjs颠覆jquery,按照中国人思维开发的最简
  7. 百度搜索功能
  8. 如何检查不包含提交按钮的HTML5表单的有
  9. 为什么不调用我的jQuery.get()回调?
  10. 如何在我的页面上以漂亮的格式显示JSON对