json的数据解析

本文介绍了一个具体的JSON数据解析案例,展示了如何从网络获取的JSON格式数据中提取活动信息,并将其转化为易于使用的对象列表。解析过程涉及了数据字段的读取、格式转换及空值检查等关键步骤。

                                         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);

 









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值