GSON解析json数据总结
来源:互联网 发布:穆勒plc手动编程 编辑:程序博客网 时间:2024/05/16 07:49
相信Gson跟json就不用在这解释了吧 直接开始实战吧
1.先附上要解析的json代码
{ "array": [ { "username": "济南", "recommend": 0, "user_photo": "0", "like": false, "reply_cnt": 3, "distance": "10m", "add_date": "fuck", "text": "明天去哈尔滨", "stamp__name": null, "place_id": 1, "ptype": "d", "like_cnt": "2", "posting_image_url": "1", "stamp_name": null, "user": 0, "stamp__id": null, "dislike": "0", "icon": "cate_icon_a_09", "id": 0, "mayor_cnt": 2, "place_name": "肯德基老北京", "place_level": 2 }, { "username": "潍坊", "recommend": 0, "user_photo": "0", "like": false, "reply_cnt": 0, "distance": "1m", "add_date": "或许", "text": "猴子", "stamp__name": null, "place_id": 7, "ptype": "d", "like_cnt": "0", "posting_image_url": "0", "stamp_name": null, "user": 0, "stamp__id": null, "dislike": "0", "icon": "cate_icon_b_05", "id": 4, "mayor_cnt": 2, "place_name": "紫烟", "place_level": 1 } ], "error": 0, "next": true}
2.接下来就是创建bean文件 进行内部封装 便于解析
需要注意的是:
1、内部嵌套的类必须是static修饰的;
2、而且类里面的属性名必须跟Json字段里面的Key是一样的;
class NearDynamic { private Boolean next=false;//① private int error;//② private ArrayList<DynamicJ> array = new ArrayList<DynamicJ>();//③ public Boolean getNext() { return next; } public void setNext(Boolean next) { this.next = next; } public int getError() { return error; } public void setError(int error) { this.error = error; } public ArrayList<DynamicJ> getArray() { return array; } public void setArray(ArrayList<DynamicJ> array) { this.array = array; }}
**从大的角度来看 json就是由这三部分组成,
然后其中 存在一个类型为Dynamic的List数组array,
所以接下来 创建 DynamicJ 这个类:**
class DynamicJ { private String username; private int recommend; private String user_photo; private Boolean like; private int replycnt; private String distance; private String add_date; private String text; private String stamp__name; private int place_id; private int like_cnt; private String ptype; private String posting_image_url; private String stamp_name; private int user; private String stamp__id; private int dislike=0; private String icon; private int id; private String place_name; private int place_level; private String mayor_cnt; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getRecommend() { return recommend; } public void setRecommend(int recommend) { this.recommend = recommend; } public String getUser_photo() { return user_photo; } public void setUser_photo(String user_photo) { this.user_photo = user_photo; } public Boolean getLike() { return like; } public void setLike(Boolean like) { this.like = like; } public int getReplycnt() { return replycnt; } public void setReplycnt(int replycnt) { this.replycnt = replycnt; } public String getDistance() { return distance; } public void setDistance(String distance) { this.distance = distance; } public String getAdd_date() { return add_date; } public void setAdd_date(String add_date) { this.add_date = add_date; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getStamp__name() { return stamp__name; } public void setStamp__name(String stamp__name) { this.stamp__name = stamp__name; } public int getPlace_id() { return place_id; } public void setPlace_id(int place_id) { this.place_id = place_id; } public int getLike_cnt() { return like_cnt; } public void setLike_cnt(int like_cnt) { this.like_cnt = like_cnt; } public String getPtype() { return ptype; } public void setPtype(String ptype) { this.ptype = ptype; } public String getPosting_image_url() { return posting_image_url; } public void setPosting_image_url(String posting_image_url) { this.posting_image_url = posting_image_url; } public String getStamp_name() { return stamp_name; } public void setStamp_name(String stamp_name) { this.stamp_name = stamp_name; } public int getUser() { return user; } public void setUser(int user) { this.user = user; } public String getStamp__id() { return stamp__id; } public void setStamp__id(String stamp__id) { this.stamp__id = stamp__id; } public int getDislike() { return dislike; } public void setDislike(int dislike) { this.dislike = dislike; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPlace_name() { return place_name; } public void setPlace_name(String place_name) { this.place_name = place_name; } public int getPlace_level() { return place_level; } public void setPlace_level(int place_level) { this.place_level = place_level; } public String getMayor_cnt() { return mayor_cnt; } public void setMayor_cnt(String mayor_cnt) { this.mayor_cnt = mayor_cnt; }}
3.通过网络拿到json数据
/** * 通过XUtils工具 发送网络请求 * URL 为服务器json地址 * processData()为解析json数据的方法 * /private void getDataFromServer() { // TODO Auto-generated method stub HttpUtils utils = new HttpUtils(); utils.send(HttpMethod.GET, URL, new RequestCallBack<String>() { @Override public void onSuccess(ResponseInfo<String> responseInfo) { // TODO Auto-generated method stub String result = responseInfo.result;// 获取服务器返回结果 System.out.println("服务器返回结果:" + result); processData(result);//解析json数据的方法 } @Override public void onFailure(HttpException error, String msg) { // TODO Auto-generated method stub error.printStackTrace(); Toast.makeText(MainActivity.this, "拿到数据失败", Toast.LENGTH_SHORT) .show(); } }); }
**从上面其实已经拿到json数据了 接下来就是Gson解析json数据的过程
4.Gson解析服务器返回的json数据
private void processData(String result) { Gson gson = new Gson();//实例化Gson NearDynamic mNearDynamic = gson.fromJson(result, NearDynamic.class); ArrayList<DynamicJ> dy = mNearDynamic.getArray(); String st = dy.get(1).getUsername(); Toast.makeText(getApplicationContext(), st, 1).show();}
**首先由Json生成NearDynamic,然后得到list数组array中的列表数据
**dy.get(1) 表示拿到数组1济南 里面的数据 在此通过Toast打印一下 弹出的为 >>济南
1 0
- GSON解析json数据总结
- gson解析json(总结)
- Gson解析Json数据
- Gson解析Json数据
- Gson解析Json数据
- Gson解析json数据
- Gson解析json数据
- Gson解析Json数据
- Gson解析Json数据
- gson 解析json数据
- GSON解析json数据
- Gson解析Json数据
- Gson解析Json数据
- Gson解析json数据
- Gson解析json数据
- gson 解析json数据
- Gson解析json数据
- Gson解析json数据
- 编程助手JavaScript学习库-面向对象编程笔记
- HDU5795 A Simple Nim
- http头文件
- http检测调试工具
- 连接oracle
- GSON解析json数据总结
- Android shape的属性介绍
- 前端重点知识整理(JavaScript)三:闭包
- RedHat下安装Python3步骤
- 读入优化
- Dynamics CRM 2015 通过JS控制下拉框实现国家省市级联
- How To Use MCI to Play AVI/WAVE Files from Memory
- 前端本地客户端压缩图片,兼容IOS,Android,PC、自动按需加载文件
- 图结构练习——最短路径