- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Gson使用指南
注:此系列基于Gson 2.4。
上一篇文章? HYPERLINK /?p=23862 你真的会用Gson吗?Gson使用指南(1)?我们了解了Gson的基础用法,这次我们继续深入了解Gson的使用方法。
本次的主要内容:
Gson的流式反序列化
Gson的流式序列化
使用GsonBuilder导出null值、格式化输出、日期时间及其它小功能
一、Gson的流式反序列化
自动方式
Gson提供了fromJson()和toJson()?两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化。同时每个方法都提供了重载方法,我常用的总共有5个。
这是我在上一篇文章开头说的,但我到最后也一直没有是哪5个,这次我给列出来之后,你就知道这次讲的是哪个了。
1
2
3
4
5Gson.toJson(Object);
Gson.fromJson(Reader,Class);
Gson.fromJson(String,Class);
Gson.fromJson(Reader,Type);
Gson.fromJson(String,Type);好了,本节结束!
看第2、4行,Reader懂了吧
手动方式手动的方式就是使用stream包下的JsonReader类来手动实现反序列化,和Android中使用pull解析XML是比较类似的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22String json = {\name\:\怪盗kidou\,\age\:\24\};
User user = new User();
JsonReader reader = new JsonReader(new StringReader(json));
reader.beginObject(); // throws IOException
while (reader.hasNext()) {
????String s = reader.nextName();
????switch (s) {
????????case name:
???????????? = reader.nextString();
????????????break;
????????case age:
????????????user.age = reader.nextInt(); //自动转换
????????????break;
????????case email:
????????????user.email = reader.nextString();
????????????break;
????}
}
reader.endObject(); // throws IOException
System.out.println();? // 怪盗kidou
System.out.println(user.age);?? // 24
System.out.println(user.email); // ikidou@其实自动方式最终都是通过JsonReader来实现的,如果第一个参数是String类型,那么Gson会创建一个StringReader转换成流操作。
Gson流式解析
二、Gson的流式序列化
自动方式
Gson.toJson方法列表
所以啊,学会利用IDE的自动完成是多么重要这下知道了吧!可以看出用红框选中的部分就是我们要找的东西。
提示:PrintStream(System.out) 、StringBuilder、StringBuffer和*Writer都实现了Appendable接口。
1
2
3Gson gson = new Gson();
User user = new User(怪盗kidou,24,ikidou@);
gson.toJson(user,System.out); // 写到控制台手动方式
1
2
3
4
5
6
7
8JsonWriter writer = new JsonWriter(new OutputStreamWriter(System.out));
writer.beginObject() // throws IOException
????????.name(name).value(怪盗kidou)
????????.name(age).value(24)
????????.name(email).nullValue() //演示null
????????.endObject(); // throws IOException
writer.flush(); // throws IOException
//{name:怪盗kidou,a
文档评论(0)