Создать пустой json объект, используя библиотеку moshi json - PullRequest
1 голос
/ 09 марта 2020

Каким должен быть мой класс данных, чтобы когда я конвертировал его в json с помощью moshi, он выглядел так:

{"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 Ответ

2 голосов
/ 09 марта 2020

Оказывается, вы должны использовать var вместо val для своих учеников. Я меняю свой класс на этот

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

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

    @JsonClass(generateAdapter = true)
    class FormValues
}

, и Моши генерирует json, как это

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