如何使用 GSON 设置未公开参数的默认值

How to set default value of not exposed parameter with GSON

我正在尝试通过 GSON 使用改造来解析 Kotlin 中的这种 json:

{
     "status":"ready"
     "users":
     [
         {
            "full_name":"user1",
            "id":1
         },
         {
            "full_name":"user2",
            "id":2
         }
     ]
}

我需要获取用户列表,所以我有一个改造请求,以获取 class 的实例,这样定义:

data class Info(var status:String, var users : List<User>)

请求如下:

@GET("info")
fun getInfo(): Flowable<Info>

这是用户 class :

data class User (val full_name:String = "",
                 val id:Int = 0)

问题是当 full_name 不在 json 中时,用户的字段 full_name 被设置为 null 而不是 ""。

含义:忽略默认值。

但是,如果我将信息字段的默认值 "status" 设置为“”,它会起作用:当状态未在 json 中定义时,创建的信息实例具有其参数 "status" 设置为“”

我做错了什么?

谢谢

原来我给出的例子是有效的。 在我的实际代码中,我没有初始化所有变量...似乎是 GSON 的问题...

长话短说;博士 如果你想让 GSON 考虑默认值,你必须设置所有暴露的变量默认值