Androidx Kotlin с использованием Gson, необходимо создать вложенный класс данных GSON - PullRequest
0 голосов
/ 06 марта 2020

У меня есть приложение android, использующее kotlin, и я также использую библиотеку gson google. Я пытаюсь создать вложенный класс данных, соответствующий объекту json, который я получаю. JSON:

{
  "results":{
    "userid": "575",
    "email" : "joe@joe"
   },
   "errors": {"errormessage":"no errors found"}
}

Я создаю класс данных kotlin с использованием GSON, но я не уверен, как обращаться с вложенными частями, чтобы объект GSON совпадал с json, приведенным выше. Ниже приведено то, что Я думаю, что будет работать.

Ответы [ 2 ]

2 голосов
/ 06 марта 2020
data class Response( @SerializedName("results") val results: Results? = null, @SerializedName("errors") val errors: Errors? = null)

data class Results(@SerializedName("userid") val userId: String, @SerializedName("email") val email:String)

data class Errors(@SerializedName("errormessage") val errorMessage:String)
1 голос
/ 07 марта 2020

Поскольку все данные должны принадлежать к одному и тому же классу данных, сначала необходимо сгладить json с помощью таких утилит, как json-flattener, которые доступны по следующей ссылке: Автор описал, как использовать библиотеку.

Json -Flattener

Эта утилита преобразует ваш иерархический json объект в плоский формат, например:

{
    "results.userid": "575",
    "results.email": "joe@joe",
    "errors.errormessage": "no errors found"
}

Затем вы можете десериализовать его в данные модель класса как:

data class Response(
    @SerializedName("results.userid") val userId: String?,
    @SerializedName("results.email") val email: String?,
    @SerializedName("errors.errormessage") val errorMessage: String?
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...