【发布时间】:2019-07-13 00:43:42
【问题描述】:
我正在使用Gsson 转换JSON to Kotlin data class。在创建数据类对象时,我想解析 init 方法中的值。但是init 从未调用过,并且生成的对象的值为空。
data class Configuration (val groupId:Int, val key:String, val source:String){
val query:String
val search:String
init {
val obj = JSONObject(key)
query = obj.getString("q")
search = obj.getString("search")
}
}
当我从Gson、query 和search 获得配置对象时,值始终为null 和init 块从未执行过。我也试过constructor,没有data关键字,结果是一样的。
【问题讨论】:
-
您确定在初始化期间您的 JSONObject 中有“q”和“search”元素吗?
-
可能是 GSON 在反序列化时覆盖了这些字段。 github.com/google/gson/blob/master/…
-
@laughter 是的,关键字段包含一个 json 对象
标签: kotlin data-class