android 解析json数据格式的方法
程序员文章站
2022-06-29 09:41:08
json数据格式解析我自己分为两种;
一种是普通的,一种是带有数组形式的;
普通形式的:服务器端返回的json数据格式如下:
复制代码 代码如下:{"userbean...
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。
下一篇: android开机自启动app示例分享
推荐阅读
-
struts2中action实现ModelDriven后无法返回json的解决方法
-
java解析Excel的方法(xls、xlsx两种格式)
-
解决SpringMvc后台接收json数据中文乱码问题的几种方法
-
Java实现解析dcm医学影像文件并提取文件信息的方法示例
-
Android studio查看本地变更历史history的方法
-
解析SQLServer获取Excel中所有Sheet的方法
-
Java 把json对象转成map键值对的方法
-
Android编程实现全局获取Context及使用Intent传递对象的方法详解
-
Android中修改TabLayout底部导航条Indicator长短的方法
-
Android studio版本号查看的三种方法