美文网首页程序员
带你进入ANDROID GSON

带你进入ANDROID GSON

作者: android框架安卓 | 来源:发表于2018-07-06 15:07 被阅读7次

单个对象

首先我们来看一个最简单的用法,假设json的数据格式是这样的:

{"id":100,"body":"It is my post","number":0.13,"created_at":"2014-05-22 19:12:38"}

那么我们只需要定义对应的一个类:

publicclassFoo{publicintid;publicStringbody;publicfloatnumber;publicStringcreated_at;}

使用起来只需如下几行代码就行了:

publicstaticfinalStringJSON_DATA="...";Foofoo=newGson().fromJson(JSON_DATA,Foo.class);

这里是最简单的用法,created_at直接定义了String类型,如果你想要Date类型的也可以,就变成下面的例子:

publicclassFoo{publicintid;publicStringbody;publicfloatnumber;publicDatecreated_at;}publicstaticfinalStringJSON_DATA="...";GsonBuildergsonBuilder=newGsonBuilder();gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss");Gsongson=gsonBuilder.create();Foofoo=gson.fromJson(JSON_DATA,Foo.class);

有人说created_at不是java风格,java编程规范是驼峰结构,那么ok,Gson很人性化的也提供注解的方式,只需要把Foo对象改成这样就ok了:

publicclassFoo{publicintid;publicStringbody;publicfloatnumber;@SerializedName("created_at")publicStringcreatedAt;}

然后用法不变,是不是很方便。

对象的嵌套

假设要返回如下数据:

{"id":100,"body":"It is my post","number":0.13,"created_at":"2014-05-22 19:12:38","foo2":{"id":200,"name":"haha"}}

那么对象的定义是这样的

publicclassFoo{publicintid;publicStringbody;publicfloatnumber;publicStringcreated_at;publicChildFoofoo2;publicclassChildFoo{publicintid;publicStringname;}}

对象数组

假如返回的是json数组,如下

[{"id":100,"body":"It is my post1","number":0.13,"created_at":"2014-05-20 19:12:38"},{"id":101,"body":"It is my post2","number":0.14,"created_at":"2014-05-22 19:12:38"}]

这种解析有两种方法:

1、解析成数组

publicstaticfinalStringJSON_DATA="...";Foo[]foos=newGson().fromJson(JSON_DATA,Foo[].class);//这时候想转成List的话调用如下方法//ListfoosList=Arrays.asList(foos);

2、解析成List

publicstaticfinalStringJSON_DATA="...";TypelistType=newTypeToken>(){}.getType();ArrayListfoos=newGson().fromJson(JSON_DATA,listType);

总结

上面基本就总结到开发中常用到的几种类型,用法很简单方便,主要需要json数据抽象成对应的数据模型就ok了。不过阿里也有一套自己的开源json解析库–FastJson,据说性能更佳,但是实际应用中感觉Gson的解析已经相当快了,而且更习惯用Google官方的东西,所以对FastJson没有怎么研究,以后有时间使用体验一下

   欢迎大家加群交流技术:367685933

相关文章

  • 带你进入ANDROID GSON

    单个对象 首先我们来看一个最简单的用法,假设json的数据格式是这样的: {"id":100,"body":"It...

  • Android 库 Gson

    【Android 库 Gson】 引用: ★Gson 解析教程★★★ Gson的入门使用Gson全解析(上)-Gs...

  • Andriod中Gson使用

    Gson使用 参考你真的会用Gson吗?Gson使用指南 在Android中使用Gson,先在Compile中加入...

  • Gson基本用法

    Gson是谷歌官方推出的 JSON 包。 一. 导入Android Studio工程 二. 序列化 使用Gson将...

  • Gson序列化那些事

    Android开发中会经常解析json,使用retrofit框架常用gson解析json。Gson有一定的容错机制...

  • 带你进入 Android 的世界

    1 Android 简介 Android 从面世以来到现在已经发布了二十几个版本了。在这几年的发展过程中,谷歌为 ...

  • Android Gson

    现在大多数客户端与服务器之间交互的数据格式是json,我们在开发中需要去解析json数据,于是google为我们提...

  • Android Gson

    Release包 类无法解析 解决方案:在proguard-rules.pro文件中加入

  • Json解析,上了GsonFormat的当!

    对于android中的json解析相信不少人,都是采用了Gson.既然使用了Gson,肯定有人使用了GsonFor...

  • 那些值得收藏的技术博客

    目录 Android应用构建相关 ScrollView Animation View 技术 GSON Java L...

网友评论

    本文标题:带你进入ANDROID GSON

    本文链接:https://www.haomeiwen.com/subject/mshmuftx.html