用gson 解 json
1、json 简单介绍
轻量级数据存储传输文件,比xml精简。
2、Gson简单介绍
android中解json方式很多,比较常用json-lib goole-Gson. json-lib要包含的包比较多。就学习采用了goole的Gson.
下载链接:http://code.google.com/p/google-gson/
帮助文档:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html
从文档结构上清楚的看到。普通的解析json只要用Gson这个类即可 解为java 对象。如果想要手解可以调用:JsonReader 的方法自己解析。我遇到的情况比较简单没必要自己手解。
3、json 解析为一个类对象
步骤:
a) 创建一个类。成员名取json 键值的键名
b) 创建一个Gson 对象
c) 调用fromJson 方法得到对应类实例。该方法有很多重载详细参阅文档。
得到实例,对应的值就赋到了对应的键里了。
String string =
"{\"userId\":215,\"username\":\"haode\",\"user\":\"haode\", \"eage\":512}";
Gson gson = new Gson();
try {
Fromat mFromat = gson.fromJson(string, Fromat.class);
} catch (Exception JsonSyntaxException) {
// TODO: handle exception
JsonSyntaxException.printStackTrace();
}
4、json 解析为一个类对象集
a) 创建一个类。成员名取json 键值的键名。
b) 创建一个Gson 对象
c) 创建类集 调用TypeToken 方法取得类型。文档中有详细描述
c) 调用fromJson 方法得到对应类集实例。该方法有很多重载详细参阅文档。
String string2 = "[{\"userId\":215,\"username\":\"haode\",\"user\":\"haode\"},{\"userId\":215,\"username\":\"haode\",\"user\":\"haode\"}]";
Gson gson2 = new Gson();
LinkedList<Fromat> mList = new LinkedList<MainActivity.Fromat>();
Type typeOfT = new TypeToken<LinkedList<Fromat>>(){}.getType();
try {
mList = gson2.fromJson(string2, typeOfT);
} catch (Exception JsonSyntaxException) {
// TODO: handle exception
JsonSyntaxException.printStackTrace();
}
5、json 嵌套解析。
关键点:设计一个嵌套类,类实例取名为键值
例子:
json: {"userId":12345678,"username":"demo","plant":[{"id":1,"name":"name1"},{"id":2,"name":"name2"}]}
视图:
对应嵌套类:
解析代码:
InputStream jsonInputStream4 = getResources().openRawResource(R.raw.enty);
Gson jsonGson4 = new Gson();
Reader mReader4 = new InputStreamReader(jsonInputStream4);
SolarEnty mSolar4 = jsonGson4.fromJson(mReader4, SolarEnty.class);
6、json解析list (这个经常记不住)
Gson gson = new Gson();
java.lang.reflect.Type type =new TypeToken<List<ShopRecommmedEntity>>() {
}.getType();
List<ShopRecommmedEntity> list = gson.fromJson(response, type);
用gson 解 json的更多相关文章
- Google Gson解析Json数据应用实例
转自:http://lixigao449778967.blog.163.com/blog/static/24985164201269105928783/ 1.需要的Jar包 1) Google Gso ...
- 使用Gson解析json
前边的博客说过将json解析成java的方法,使用的是 这几个jar包,但是在解析时层遇到一个问题,就是在将时间字符串转换为java的Timestamp对象时会抛出异常,这个问题一直放在哪里没有去解决 ...
- 大话JSON之Gson解析JSON
(三)解析Json数组(多条Json数据) 比如有如下Json数据: [{'name':'John', 'grade':[{'course':'English','score':100},{'cour ...
- Gson操作json
github:https://github.com/google/gson API:http://google.github.io/gson/apidocs/ 示例对象 package present ...
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
- Gson解析json数据
1.解析单个对象 JSON字符串如下 [ { "formatDate":"2015-10-28", "date":"2015\u5 ...
- Android网络之数据解析----使用Google Gson解析Json数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- JSON和GSON操作json数据
1,JSON操作json import net.sf.json.JSONArray; import net.sf.json.JSONObject; //json操作数据 public static S ...
- Gson把json串转换成java实体对象
Gson把json串转换成java实体对象的方法如下: 1.首先导入Gson的jar包,网上可以下载. java实体对象如下: public class Model { private double ...
随机推荐
- 模块化开发,SesJS简单总结
一.概念:SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架. 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definit ...
- [汇编语言]-第八章 div指令,伪指令dd,dup
1- div除法指令 (1) 除数: 有8位和16位两种,在一个寄存器或内存单元中. (2) 被除数: 默认放在AX和DX或AX中 除数为8位, 被除数为16位, 默认在AX中存放. 除数为16位, ...
- Python之路第六天,基础(8)-反射
反射 利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员(函数). Python中反射用到的4个内置函数:getattr(),setattr(),hasattr(),delattr() ...
- 使用notepad++学习python爬虫,print网页中文乱码问题
今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notep ...
- 寻找素数对(hd1262)
寻找素数对 点我 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- webapi文档
webapi文档描述-swagger 最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员.这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员 ...
- Nutch配置
http://www.linuxidc.com/Linux/2011-12/48782.htm http://wiki.apache.org/nutch/NutchHadoopTutorial htt ...
- Web常用函数介绍(LoadRunner相关)
介绍大纲:1. web_url2. web_image3. web_link4. web_submmit_form 详细介绍: 一. web_url web_url 语法: Int Web_url(c ...
- c++ 17介绍
作者:hearts zh链接:https://www.zhihu.com/question/32222337/answer/55238928来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- matlab-----均值滤波函数的实现
均值滤波的原理是对图像以一个区域(方形,圆形)等为模板,对该区域内的数据求平均后赋值给区域的中心 这种滤波方式原理简单,但是在滤波的同时会造成图像模糊. 本文将尝试对matlab中的filter2() ...