如何使用Gson反序列化Kotlin数组列表?

Guerlando OC:

我想这样反序列化:

MyClass myClass = new Gson().fromJson(jsonStr, MyClass.class);

但是我的对象是一个声明为的kotlin对象 val effectsList = arrayListOf<Effect>()

我应该通过什么代替MyClass.class

https://stackoverflow.com/a/57972855/10116440之后我尝试了

        val listEffect:List<Effect> = Gson().fromJson(effectsString, List<Effect>.class)

但这行不通

劳伦斯:

您需要使用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)

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章