Gson使用初探
参考地址:
http://www.stormzhang.com/android/2014/05/22/android-gson/
我的示例代码:
public void doGsonTest(View view) {
//参考文档 http://www.stormzhang.com/android/2014/05/22/android-gson/
Log.d("lsl","doGsonTest"); String JSON_DATA = "{\"id\": 101,\"body\": \"It is my post\",\"number\": 0.13,\"created_at\": \"2014-05-22 19:12:38\"}";
Foo foo = new Gson().fromJson(JSON_DATA, Foo.class);
LogUtil.d("lsl","id="+foo.id+"body="+foo.body+"number="+foo.number+"created_at="+foo.created_at); GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("yyyy-MM-dd");
Gson gson = gsonBuilder.create();
foo = gson.fromJson(JSON_DATA, Foo.class);
LogUtil.d("lsl","id="+foo.id+"body="+foo.body+"number="+foo.number+"created_at="+foo.created_at); JSON_DATA = "[{\"id\": 102,\"body\": \"It is my post\",\"number\": 0.13,\"created_at\": \"2014-05-22 19:12:38\"},{\"id\": 103,\"body\": \"It is my post\",\"number\": 0.13,\"created_at\": \"2014-05-22 19:12:38\"}]";
Foo[] foos = new Gson().fromJson(JSON_DATA, Foo[].class);
List<Foo> foosList = Arrays.asList(foos);
for(Foo vo : foosList){
LogUtil.d("lsl","id="+vo.id+"body="+vo.body+"number="+vo.number+"created_at="+vo.created_at);
}
LogUtil.d("lsl","============merchandiose=============");
JSON_DATA = "{\"op_type\": 10002,\"code\": \"0\",\"msg\": \"success\",\"data\":[{\"id\": 104,\"name\": \"apple\",\"kind_name\": \"food\",\"price\": 0.13,\"created_at\": \"2014-05-22 19:12:38\"},{\"id\": 105,\"name\": \"orange\",\"kind_name\": \"food\",\"price\": 0.13,\"created_at\": \"2014-05-22 19:12:38\"}]}";
MechandiseListModel mObj = new Gson().fromJson(JSON_DATA, MechandiseListModel.class);
LogUtil.d("lsl","op_type="+mObj.op_type
+"code="+mObj.code
+"msg="+mObj.msg
);
List<Mechandise> mList = mObj.data;
for(Mechandise m : mList){
LogUtil.d("lsl","" +
"id="+m.id+"name="+m.name+"kind_name="+m.kind_name+
"price="+m.price+"created_at="+m.created_at
);
}
}
public class MechandiseListModel {
public int op_type;
public int code;
public String msg;
List<Mechandise> data;
}
public class Mechandise {
public int id;
public String name;
public String kind_name;
public float price;
public String created_at;
} public class Foo {
public int id;
public String body;
public float number;
public String created_at;
}
Gson使用初探的更多相关文章
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...
- 从273二手车的M站点初探js模块化编程
前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- .NET文件并发与RabbitMQ(初探RabbitMQ)
本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...
- No-args constructor for class X does not exist. Register an InstanceCreator with Gson for this type to fix this problem.
Gson解析JSON字符串时出现了下面的错误: No-args constructor for class X does not exist. Register an InstanceCreator ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- Gson将字符串转换成JsonObject和JsonArray
以下均利用Gson来处理: 1.将bean转换成Json字符串: public static String beanToJSONString(Object bean) { return new Gso ...
- Gson解析纯Json数组
[ { "type": "123", "value": 123 }, { "type": "234" ...
随机推荐
- hdu4507
数位dp,终于守得云开见月明了.建议初学者先试试两道比较简单的hdu2089,hdu3555. 鸣谢:http://blog.csdn.net/acm_cxlove/article/details/8 ...
- javascript 数组的常用操作函数
join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为“,”). 与之相反的一个方法是:Stri ...
- 解决Ubuntu DNS解析慢、上网速度慢
自从ubuntu升级到10.04后,上网速度感觉变慢了很多(ADSL),原因也众说分云,有说是firefox浏览器造成的,于是用chrome访问,速度依然很慢,可见不是由于浏览器造成的. 网速慢, 是 ...
- css3实现三角形,聊天背景气泡,心形等形状
1.聊天背景气泡: css代码如下: #talkbubble {width: 120px;margin:auto; background: red; position: relative; -moz- ...
- PHP中mktime() 函数对于日期运算和验证
mktime() 函数对于日期运算和验证非常有用.它可以自动校正越界的输入: // 语法:mktime(hour,minute,second,month,day,year) echo(date('Y- ...
- 移动端使用rem方法
(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ...
- ERROR 1062 (23000): Duplicate entry '1-1' for key 'PRIMARY'
这个错误是说,由于某个SQL操作造成了,表中主键重复. 例子: create table t(x int,y int,z int, primary key(x,y)); insert into t(x ...
- Delphi 的接口机制——接口操作的编译器实现过程(2)
接口对象的内存空间 假设我们定义了如下两个接口 IIntfA 和 IIntfB,其中 ProcA 和 ProcB 将实现为静态方法,而 VirtA 和 VirtB 将以虚方法实现: IIntfA = ...
- Hibernate get 和load的区别
1 load是要用的时候才从数据库去查询,get 是马上查询. 2 对于不存在的记录,get会报空指针异常,load会报 org.hibernate.ObjectNotFoundException: ...
- 字符编码和python使用encode,decode转换utf-8, gbk, gb2312
ASCII码 标准ASCII码使用7位二进制数表示大写或小写字母,数字0到9标点符号以及在美式英语中使用的特殊控制字符. 在标准ASCII码中,最高位(b7)用作奇偶校验位,所谓奇偶校验,是指在代码传 ...