android解析jsonデータ(一)

4590 ワード

jsonデータフォーマット解析は私自身が2つに分けられます.1つは普通で、1つは配列形式を持っています.一般的な形式:サーバ側が返す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");

配列付き:サーバ側から返されるデータ形式は、{"calendaar":{"calendaarlist":[{"calendaar_id":"1705","title":"(u 4 eb 2u 5 b 50)ddssd","category_name":"u 9 ed 8u 8 ba 4u 5206u 7 c 7 b","showtime":"12288927800","endshowtime":"12288931400","allDay":false},{calendaarendarid_id","calend_id","calendar_id""","calendaarendarid""":{calendaarendarid_id"""""","ca:[ 1706]、「title」:「(u 65 c 5u 884 c)」、「category_name」:"u 9 ed 8u 8 ba 4u 5206u 7 c 7 b","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反射メカニズムを利用して作業を簡素化することもできますhttp://blog.csdn.net/yifuteli_kevin/article/details/11891783