json数据解析网络上传过来的数据
网络数据如下:
{
"eventList": [
{
"eventId": 262, //活动编号
"heat": 50, //活动热度
"imageUrl": "http://oss.aliyun.com/mybuket/001.jpg", //活动图片地址
"locationName": "北京工人体育馆", //活动地址
"startTime": 1419824358, //unix时间戳 //活动开始时间
"title": "演唱会", //活动标题
"longitude": 118.143, //活动地点经度
"latitude": 24.4906 //活动地点纬度
},
{
"eventId": 261,
"heat": 30,
"imageUrl": "http://oss.aliyun.com/mybuket/001.jpg",
"locationName": "上海梅赛德斯奔驰中心",
"startTime": 1419824358, //unix时间戳
"title": "话剧",
"longitude": 118.143,
"latitude": 24.4906
}
]
}
json解析数据:jsonObject中包含了json的数据
@Override
public void onResponse(boolean success, JsonObject jsonObject, String errStr) {
//定义List泛型为Event对象
ArrayList<Event> list = null;
if (success) {
list = new ArrayList<Event>();
JsonArray jsonArray = jsonObject.get("eventList").getAsJsonArray();
Pattern pattern = Pattern.compile("\\,");
String baseEventImageUrl = ApiUrl.getEventImageUrl();
for (int i = 0; i < jsonArray.size(); i++) {
JsonObject jObj = jsonArray.get(i).getAsJsonObject();
Event event = new Event();
event.eventId = jObj.get("eventId").getAsInt();
event.heat = jObj.get("heat").getAsInt();
String imageUrls = jObj.get("imageUrl").getAsString();
event.imageUrl = baseEventImageUrl + "/" + pattern.split(imageUrls)[0];
event.locationName = jObj.get("locationName").getAsString();
event.title = jObj.get("title").getAsString();
//判断json数据是否为空
if (!(jObj.get("startTime").isJsonNull())) {
event.startTime = jObj.get("startTime").getAsLong();
event.startTimeStr = event.getTimeStr(event.startTime);
} else {
event.startTime = 0;
event.startTimeStr = "长期";
}
list.add(event);
}
}
注意:Json解析出来的数据是否为空需要用到isJsonNull()来判断,
判断字符str是否为空的要用TextUtils.isEmpty(str);