json数据格式解析我自己分为两种:
一种是普通的,一种是带有数组形式的;


普通形式的:

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

{
" userbean " :{ " Uid " : " 100196 " , " Showname " : " \u75af\u72c2\u7684\u7334\u5b50 " , " Avtar " : null , " State " : 1 }}

分析代码如下:

// TODO状态处理500200
int res = 0 ;
res
= httpClient.execute(httpPost).getStatusLine().getStatusCode();
if (res == 200 ){
/*
*当返回码为200时,做处理
*得到服务器端返回json数据,并做处理
*
*/
HttpResponsehttpResponse
= httpClient.execute(httpPost);
StringBuilderbuilder
= new StringBuilder();
BufferedReaderbufferedReader2
= new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent()));
Stringstr2
= "" ;
for (Strings = bufferedReader2.readLine();s != null ;s = bufferedReader2
.readLine()){
builder.append(s);
}
Log.i(
" cat " , " >>>>>> " + builder.toString());

JSONObjectjsonObject
= new JSONObject(builder.toString())
.getJSONObject(
" userbean " );

StringUid;
StringShowname;
StringAvtar;
StringState;

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状态处理500200
int res = 0 ;
res
= httpClient.execute(httpPost).getStatusLine().getStatusCode();
if (res == 200 ){
/*
*当返回码为200时,做处理
*得到服务器端返回json数据,并做处理
*
*/
HttpResponsehttpResponse
= httpClient.execute(httpPost);
StringBuilderbuilder
= new StringBuilder();
BufferedReaderbufferedReader2
= new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent()));
Stringstr2
= "" ;
for (Strings = bufferedReader2.readLine();s != null ;s = bufferedReader2
.readLine()){
builder.append(s);
}
Log.i(
" cat " , " >>>>>> " + builder.toString());
/**
*这里需要分析服务器回传的json格式数据,
*/
JSONObjectjsonObject
= new JSONObject(builder.toString())
.getJSONObject(
" calendar " );
JSONArrayjsonArray
= jsonObject.getJSONArray( " calendarlist " );
for ( int i = 0 ;i < jsonArray.length();i ++ ){
JSONObjectjsonObject2
= (JSONObject)jsonArray.opt(i);
CalendarInfocalendarInfo
= 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入门(7):活动的启动模式
  2. android webview中使用Java调用JavaScript方法并获取返回值
  3. android activity 跳转与值
  4. android客户端访问服务端tomcat
  5. Android(安卓)Dialog 弹出 居右、居左、居中
  6. android私有文件夹的访问
  7. curl在Android中使用的Demo
  8. Android中获取字符串长度、宽度(所占像素宽度)
  9. 获得两点间的GPS距离

随机推荐

  1. Android Notification通知栏、点击事件、
  2. android的五大布局详解
  3. android 实现高德2D地图,定位和定位蓝点
  4. android 开源组件合集-UI篇(2014-08-25更
  5. 【笔记】Android高版本Apache HTTPClient
  6. Android/Linux 内存监视
  7. 查看移动App排名和推荐的网站分享
  8. Android 开发笔记1
  9. Android(安卓)SQlite数据库的使用(二)
  10. android studio 3.0 使用LeakCanary检测