android中用jsonObject解析json資料__js

來源:互聯網
上載者:User
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。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.