json数据格式解析我自己分为两种;一种是普通的,一种是带有数组形式的; 普通形式的:服务器端返回的json数据格式如下:{ " userbean " :{ " Uid " : " 100196 " , " Showname " : " \疯\狂\的\猴\子 " , " 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 " : " (\亲\子)ddssd " , " category_name " : " \默\认\分\类 " , " showtime " : " 1288927800 " , " endshowtime " : " 1288931400 " , " allDay " : false }, { " calendar_id " : " 1706 " , " title " : " (\旅\行) " , " category_name " : " \默\认\分\类 " , " 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。