前言
我们在工作中经常会需要进行一些网络通信的操作,例如在网络请求时需要把数据保存下来方便后续直接读取,亦或需要将本地保存的一些数据转成Json发送网络请求。这时Data class和Json之间的互转就派上了用场,使用方便的同时,代码可读性也会大大增强。
接下来的文章就介绍Data class的互转操作,使用的是Klaxon库,当然谷歌的Gson也能很方便的实现
正文
Klaxon依赖
dependencies {
implementation 'com.beust:klaxon:5.5'
}
Json转Data Class
首先先创建一个Data class,设置好需要解析的Json字段:
internal data class TestData(
@Json(name = "age")
val age: Int,
@Json(name = "name")
val name: String
)
然后使用Klaxon解析,读取解析结果:
val testData = Klaxon().parse<TestData>(body)
val age = testData.age
val name = testData.name
是不是很方便也很易读
Data Class 转 Json
为了方便演示就直接使用上面创建的TestData了,下面直接上转换流程:
val testData = TestData(
age = 18,
name = "heihei"
)
try {
//注意转换成功的json是String类型
val json = Klaxon().toJsonString(testData)
}catch (e: JSONException){
e.printStackTrace()
}
//最终转换结果:{"age" : 18, "name" : "heihei"}
以上就是文章全部内容啦,主要是提供一个转换的思路,有更好的方法或者错误可以留言哈,我会及时改正的,谢谢。