我使用这个类来存储数据

public class Item(var name:String,
                  var description:String?=null){
}

并在ArrayList中使用它

public var itemList = ArrayList<Item>()

Use this code to serialize the object

val gs=Gson()
val itemListJsonString = gs.toJson(itemList)

反序列化

itemList = gs.fromJson<ArrayList<Item>>(itemListJsonString, ArrayList::class.java)

But this method will give me LinkedTreeMap, not Item, I cannot cast LinkedTreeMap to Item

在Kotlin中反序列化为json的正确方法是什么?

推荐答案

请try 反序列化列表的代码

val gson = Gson()
val itemType = object : TypeToken<List<Item>>() {}.type
itemList = gson.fromJson<List<Item>>(itemListJsonString, itemType)

Kotlin相关问答推荐

在KMP中使用koin将来自Android的上下文注入到SQLDelight Driver中

Kotlin:有限的并行性并不是限制并行性

Kotlin中一个接口的实现问题

可以从背景图像中点击图标吗?

如何在Android应用判断上运行多个查询

Ktor 在 Heroku 上的 CORS 问题,但在本地没有

有没有一种简单的方法可以将数组/列表中的每个元素相互相乘 - Kotlin?

如何在 Kotlin 中实现 Composition UML 关系?

基类中的 ViewModelProviders.get(...)

在 Kotlin 中使用 @Parcelize 注释时如何忽略字段

在 kotlin 中写入 parcer 可空值

@InlineOnly 注释是什么意思?

模拟异常 - 没有找到答案

Kotlin 创建snackbar

验证和 DDD - kotlin 数据类

重复构建失败To use Coroutine features, you must add `ktx`......

我们如何在Java注释声明中引用Kotlin常量?

Kotlin lambda 语法混淆

Kotlin-将UTC转换为当地时间

如何根据ArrayList的对象属性值从中获取最小/最大值?