json数据解析
来源:互联网 发布:网络运维与管理 编辑:程序博客网 时间:2024/05/16 01:48
[{"name":"音箱狂欢",imgUrl":"http://7mno4h.com2.z0.glb.qiniucdn.com/5608f3b5Nc8d90151.jpg","type":1},{"name":"手机国庆礼","imgUrl":"http://7mno4h.com2.z0.glb.qiniucdn.com/5608eb8cN9b9a0a39.jpg","type":1}]// 解析json方式:遇到{}就用JsonObject, 遇到[]就用JsonArray 如果json数据最外层是[]不是{} 用gson.jar解析就需要注意了
. 在使用Gson解析json字符串的时候,怎么建立JavaBean 是非常关键的。要注意一下三点,
第一. 内部嵌套的类必须是static的,要不然解析会出错。
第二. 类里面的属性名必须跟json字段里面的key是一模一样的。
第三. 内部嵌套的用[], 括起来的部分是一个List, 所以定义为public List<B> b. 而只用{}嵌套的就定义为public C c;
请看如下代码:
json字符串 :
String json = { "a":"100", "b":[{"b1":"b_value1","b2":"b_value2"}, {"b1":"b_value1","b2":"b_value2"}], "c": {"c1":"c_value1","c2":"c_value2"} }
方式一:原生解析法
ArrayList<> mBanners = new ArrayList<>(); try { JSONArray jsonArray = new JSONArray(string); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); BannerBean bean = new BannerBean(); bean.imgUrl = jsonObject.getString("imgUrl"); bean.name = jsonObject.getString("name"); mBanners.add(bean); } } catch (JSONException e) { e.printStackTrace(); }
方式二:gson.jar解析法
Gson gson = new Gson();Type listType = new TypeToken<List<BannerBean2>>() {}.getType();ArrayList<BannerBean2> list = gson.fromJson(string, listType);for (int i = 0; i < list.size(); i++) { BannerBean2 bannerBean2 = new BannerBean2(); bannerBean2.name = list.get(i).name; Log.i(TAG, "name>>" + bannerBean2.name);}for (BannerBean2 bean2 : list) { Log.i(TAG, "name=====>>" + bean2.name); BannerBean2 b2= new BannerBean2(); b2.name = bean2.name; Log.i(TAG, "name=====>>" + b2.name);}Type listType2 = new TypeToken<LinkedList<BannerBean2>>() {}.getType();LinkedList<BannerBean2> list2 = gson.fromJson(string, listType2);for (Iterator iterator = list2.iterator(); iterator.hasNext(); ) { BannerBean2 bean2 = (BannerBean2) iterator.next(); Log.i(TAG, "bean2name>>" + bean2.name);}public class BannerBean2 { public String name; public String imgUrl;}Gson解析json,单独以及数组 这样的json数据,String myjson 如下:[{"id":"3","title":"\u56fe\u72473","pic":"\/Uploads\/201311\/5281ef5bdb576.jpg","lang":"1"},{"id":"2","title":"\u56fe\u72472","pic":"\/Uploads\/201402\/52fb27b0f08b0.jpg","lang":"1"},{"id":"1","title":"\u56fe\u72471","pic":"\/Uploads\/201402\/52fb27d992890.jpg","lang":"1"}]先建一个model:package com.zztt.model;public class ImageInfo { private String id; private String title; private String pic; private String lang; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPic() { return pic; } public void setPic(String pic) { this.pic = pic; } public String getLang() { return lang; } public void setLang(String lang) { this.lang = lang; } } 然后,导包,不要倒错了 import java.lang.reflect.Type;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken; 单个的这样:Gson gson = new Gson();ImageInfo imageInfo = gson.fromJson(myjson, ImageInfo.class); 数组这样:Type listType = new TypeToken<ArrayList<ImageInfo>>() { }.getType(); Gson gson = new Gson(); ArrayList<ImageInfo> imageInfo = gson.fromJson(myjson, listType);
阅读全文
0 0
- Newtonsoft.Json解析json数据
- 使用Json解析Json数据
- JavaScript 解析 JSON 数据
- JavaScript 解析 JSON 数据
- JAVA解析json数据
- jquery解析json数据
- jquery解析json数据
- android---Json数据解析
- Android Json 数据解析
- jquery解析json数据
- Gson解析Json数据
- json 的数据解析
- Android解析json数据
- Java解析JSON数据
- Jquery解析json数据
- eval 解析 json 数据
- 解析JSON数据
- JSON 数据解析
- 215. Kth Largest Element in an Array
- bzoj4327
- .bat批处理学习
- flask代码段
- HDU 1288 Hat's Tea (贪心)
- json数据解析
- RAFT(1)
- requests https访问错误SSLError: certificate verify failed 及InsecureRequestWarning处理办法
- 解决:eclipse中直接输入http://localhost:8080报404错误但是直接输入http://localhost:8080/项目名称可以进去
- java版md5加密
- 习题5的第3小题
- 设计算法把一个十进制的整数转换成二至九进制之间的任意进制输出
- Fragment嵌套问题Fragment一个ViewPager展示子Fragment
- zzuli acm1056由月利息求本息的误区