使用Moshi JSON库生成空的JSON对象

时间:2020-03-09 12:55:35

标签: android moshi

我的数据类应该是什么,以便当我使用moshi将其转换为json时会出现这种情况?

{"id":"abcdef""formValues":{}}

此刻我的课看起来像这样。

@JsonClass(generateAdapter = true)
class MyDataClass(
    @Json(name = "id")
    val id: String
) {

    @Json(name = "formValues")
    val formValues = FormValues()

    @JsonClass(generateAdapter = true)
    class FormValues
}

但是您看到的声明

Moshi.Builder().build().adapter(MyDataClass::class.java).toJson(MyDataClass("abcdef"))

产生这个

{"id": "abcdef"}

我想要这个

{"id":"abcdef""formValues":{}}

1 个答案:

答案 0 :(得分:2)

事实证明,您必须为班级成员使用var而不是val。我将课程更改为此

@JsonClass(generateAdapter = true)
class MyDataClass(
    @Json(name = "id")
    var id: String
) {

    @Json(name = "formValues")
    var formValues = FormValues()

    @JsonClass(generateAdapter = true)
    class FormValues
}

然后moshi这样生成json

{"id":"abcdef""formValues":{}}