如何使用Gson反序列化Kotlin数组列表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Gson反序列化Kotlin数组列表?相关的知识,希望对你有一定的参考价值。
我想这样反序列化:
MyClass myClass = new Gson().fromJson(jsonStr, MyClass.class);
但是我的对象是被声明为val effectsList = arrayListOf<Effect>()
的kotlin对象>
我应该在MyClass.class
处传递什么?
跟随https://stackoverflow.com/a/57972855/10116440,我尝试过
val listEffect:List<Effect> = Gson().fromJson(effectsString, List<Effect>.class)
但是它不起作用
我想像这样反序列化:MyClass myClass = new Gson()。fromJson(jsonStr,MyClass.class);但是我的对象是一个声明为valeffectList = arrayListOf
答案
您需要使用TypeToken
。像这样:
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
fun main() {
val gson = Gson()
val myArrayList = arrayListOf(1, 2, 3)
val arrayType = object : TypeToken<ArrayList<Int>>() {}.type
val jsonString = gson.toJson(myArrayList)
val fromJson: ArrayList<Int> = gson.fromJson(jsonString, arrayType)
println(fromJson)
}
以上是关于如何使用Gson反序列化Kotlin数组列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Gson @SerializedName 注释在 Kotlin 中反序列化嵌套的 Json API 响应
如何使用 GSON 反序列化 Array 内的 Double 数组?