我想这样反序列化:
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] 删除。
我来说两句