阅读 144

Gson流式序列化JsonWriter

通常我们序列化使用时,是直接使用Gson将整个对象转换为Json串,如果有看过gson源码的小伙伴会发现其内部实际上是基于JsonWriter来实现流式序列化的

接下来我们来看一下JsonWriter的使用姿势

首先需要获取JsonWriter对象,在创建时需要指定输出流

JsonWriter writer = new JsonWriter(new OutputStreamWriter(System.out)); 复制代码

接下来看一下流式的序列化输出可以怎么整

writer.beginObject()         .name("name").value("一灰灰blog")         .name("age").value(24)         .name("email").nullValue()         .endObject(); writer.close(); 复制代码

注意上面的实现,对于普通对象而言,流式使用 beginObject() 开头,使用endObject()结尾

在中间,通过 name指定json串的key,value为json串的值

比如上面的执行输出为

{"name":"一灰灰blog","age":24,"email":null} 复制代码

如果对象内部嵌套了对象或者数组,同样是通过beginObject/beginArray来处理

JsonWriter writer = new JsonWriter(new OutputStreamWriter(System.out)); writer.beginObject()         .name("name").value("一灰灰blog")         .name("age").value(24)         .name("email").nullValue()         .name("skill")         .beginArray()         .value("Java")         .value("Python")         .endArray()         .endObject(); writer.close(); 复制代码

输出如下:

{"name":"一灰灰blog","age":24,"email":null,"skill":["Java","Python"]} 复制代码

一灰灰的联系方式

尽信书则不如无书,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激


作者:一灰灰
链接:https://juejin.cn/post/7024825088411172877


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐