Kotlin中使用JSON库-Gson

前言

Gson 是由 Google 开发并维护的一款 Java 库,核心功能是实现 Java 对象与 JSON 数据之间的序列化(Java 对象 → JSON 字符串)和反序列化(JSON 字符串 → Java 对象),旨在简化 Java 开发中 JSON 数据的处理流程,广泛应用于后端接口交互、数据存储等场景。

添加引用

引用

1
implementation("com.google.code.gson:gson:2.8.5")

和retrofit2搭配

1
2
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")

对象转字符串

1
val str = Gson().toJson(ques.stuAnswer)

字符串转对象

1
val ansList = Gson().fromJson(stuAnswer, Array<String>::class.java).toList()

字符串转对象 带泛型

Gson 在反序列化泛型类型时,需要完整的泛型类型信息。

方法1

1
2
val type = object : TypeToken<ZWsModel<ZWsQues>>() {}.type
val result = Gson().fromJson(msg, type)

方法2(推荐)

封装成工具函数(更优雅)

如果你经常处理类似结构,可以封装一个内联函数:

1
2
3
4
5
6
7
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken

inline fun <reified T> Gson.fromJson(json: String): T {
val type = object : TypeToken<T>() {}.type
return fromJson(json, type)
}

使用:

1
val result = Gson().fromJson<ZWsModel<ZWsQues>>(msg)