首页 > 解决方案 > 为什么 Kotlin 对象类到 json 对象为空?

问题描述

我正在尝试使用 Gson() 将 kotlin 对象类转换为 JSON 字符串,但它返回 null ,因为对象字段实际上保存了值。如果它是一个单例对象,为什么我不能直接使用它来将它转换为 JSON 字符串?

 val gson =  Gson()
 val dummy= Dummy
 val objDummy = gson.toJson(dummy)

对象类:

object Dummy: Serializable{

   var test2: String? = "test2"

   var blank: String? = null

   var test1: String? = "test1"

}

标签: jsonkotlinserialization

解决方案


中的属性object将被转换为隐式瞬态的静态字段

您可以使用GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT)允许 Gson 序列化此类字段。

val gson = GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create()
val dummy = Dummy
val objDummy = gson.toJson(dummy)

此外,Serializable用于object


推荐阅读