侧边栏壁纸
博主头像
Stars-one博主等级

所有的创作都是具有价值的
Android Kotlin Java开发者,喜欢折腾搞机,开发小工具
赞赏发电,给予支持

  • 累计撰写 144 篇文章
  • 累计创建 42 个标签
  • 累计收到 12 条评论

目 录CONTENT

文章目录

Gson Json字符串转列表List 工具类封装

Stars-one
2022-08-10 / 0 评论 / 0 点赞 / 69 阅读 / 274 字

经常使用到Gson把json数据转List的情况,稍微封装了下方法,可以更快捷的使用

Kotlin版

代码

注意 Kotlin封装是使用了扩展,String类型的扩展方法

/**
 * 将json数据转为List<T>
 *
 * @param T 数据类型
 * @return
 */
fun <T> String.parseJsonToList(): List<T> {
    val gson = Gson()
    val type = object : TypeToken<List<T>>() {}.type
    val data: List<T> = gson.fromJson(this, type)
    return data
}

/**
 * 将json数据转为一个T类型对象
 *
 * @param T
 * @return
 */
inline fun <reified T> String.parseJsonToObject(): T {
    val gson = Gson()
    val result = gson.fromJson(this, T::class.java)
    return result
}

使用

data class Student(var name: String, var age: Int)

val list = arrayListOf<Student>()
repeat(2) {
    val student = Student("name",1)
    list.add(student)
}
//这个即为json数据
val result = Gson().toJson(list)
val data = parseJsonToList<Student>(result)
println(data)
    
val student = Student("name", 1)
//这个即为json数据
val result = Gson().toJson(student)
val data = result.parseJsonToObject<Student>()
println(data.toString())


Java版

Java尝试了下,不太好封装,就贴个示例代码吧

代码

String jsonData = "";
Gson gson = new Gson();
Type type = new TypeToken<List<Student>>() {}.getType();
List<Student> data = gson.fromJson(jsonData, type);
0

评论区