【问题标题】:why Kotlin Object class to json object comes null?为什么 Kotlin 对象类到 json 对象为空?
【发布时间】:2020-05-13 15:22:34
【问题描述】:

我正在尝试使用 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"

}

【问题讨论】:

    标签: json kotlin serialization


    【解决方案1】:

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

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

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

    另外,将Serializable 用于object 是没有意义的

    【讨论】:

    • 您认为将数据存储在单例对象类中,然后直接使用它作为 JSON 发送是一种好方法吗?
    【解决方案2】:

    哦,我什至面临这个问题。您所要做的就是从 intellij idea 插件将 json 安装到 kotlin 插件,我相信它可以正常工作,甚至可以在嵌套 json 中工作

    【讨论】:

    • 我猜你错过了理解这个问题。我的问题是关于从 kotlin 对象转换为 json。
    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    相关资源
    最近更新 更多