Как разобрать класс данных в строку JSON для Kotlin? - PullRequest
1 голос
/ 21 июня 2019

Интересно, как можно преобразовать класс данных Kotlin в его эквивалентную строку json? Json keys должен быть настраиваемым.

Допустим, у меня есть класс,

data class Student(name: String?, roll: Int?, mark: Int?) {

}

Я хочу сделать Json из этого Student объекта, где будут ключи,

stundent_name, stundent_roll, stundent_mark

Кроме того, мне также может понадобиться сделать JSON из списка студентов с ключом students. Как я могу это сделать? Я знаю, используя Gson Я могу создать объект из строки JSON. Как сделать обратное?

1 Ответ

1 голос
/ 21 июня 2019
data class Student(
    @SerializedName("stundent_name")
    val name: String?,
    @SerializedName("stundent_roll")
    val roll: Int?,
    @SerializedName("stundent_mark")
    val mark: Int?
)

И код для преобразования:

val gson = Gson()
val student = Student("John", 1, 5)
gson.toJson(student)

Этот код делает строку такой:

{"stundent_mark":5,"stundent_name":"John","stundent_roll":1}

И если вам нужно создать JsonArray, просто сделайте то же самое со своим списком студентов:

gson.toJson(list)
...