赞
踩
Moshi是什么
一句话描述
Moshi就是一个实现了对Json序列化和反序列化的开源库
大名鼎鼎的Gson大家肯定都知道,Moshi本质上就是干了和他一样的事
( 本文是建立在对Moshi使用有一些简单了解的基础上,如果还没有了解过Moshi,建议看下这篇文章新一代Json解析库Moshi使用及原理解析)
为什么使用Moshi
一句话描述
Gson是一个针对Java的Json序列化和反序列化库
Moshi是一个针对Kotlin的Json序列化和反序列化库
在各种更高级语言涌现的今天,特别是kotlin的诞生,虽然本质上还是java那一套,但各种方便易用的api和语法糖,让人大呼爽歪歪。而老牌的Gson在处理Kotlin序列化问题上显得有些力不从心,主要有两个问题:
(1)空安全问题
Kotlin对变量分为可空类型和不可空类型,而Java中基本上所有变量都是可空的(除了@NonNullable标签)。如果Json中一个变量值是null,但Kotlin声明这个变量是非空,Gson仍然会把这个变量赋值为null
(2)默认参数失效
默认参数是Kotlin的一个新语法。是在定义一个data类时,直接在构造函数中赋给参数默认值。例如:
class People(val name:String, val age:Int = 18)复制代码
当Json是:
{ "name" : "哈哈哈"}复制代码
根据Kotlin的语法,期望得到的对象是
People(name="哈哈哈",ag
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。