Преобразование класса данных Kotlin из JSON с использованием GSON

Преобразование класса данных Kotlin из JSON с использованием GSON

1. обзор

В этом коротком руководстве мы обсудим, какconvert a data class in Kotlin to JSON string and vice versa using Gson Java library.

2. Maven Dependency

Прежде чем мы начнем, давайте добавимGson к нашемуpom.xml:


    com.google.code.gson
    gson
    2.8.5

3. КотлинData Class

Прежде всего, давайте создадимdata class, который мы преобразуем в строку JSON в следующих частях статьи:

data class TestModel(
    val id: Int,
    val description: String
)

КлассTestModel состоит из двух атрибутов:id иname. Поэтому строка JSON, которую мы ожидаем от Gson, будет выглядеть так:

{"id":1,"description":"Test"}

4. Преобразование изData Class в строку JSON

Теперь мы можем использовать Gson дляconvert objects of TestModel class to JSON:

var gson = Gson()
var jsonString = gson.toJson(TestModel(1,"Test"))
Assert.assertEquals(jsonString, """{"id":1,"description":"Test"}""")

В этом примере мы используемAssert, чтобы проверить, соответствует ли вывод Gson нашему ожидаемому значению.

5. Преобразование из строки JSON вData Class

Конечно, иногда нам нужноconvert from JSON to data objects:

var jsonString = """{"id":1,"description":"Test"}""";
var testModel = gson.fromJson(jsonString, TestModel::class.java)
Assert.assertEquals(testModel.id, 1)
Assert.assertEquals(testModel.description, "Test")

Здесь мы преобразуем строку JSON в объектTestModel, сообщая Gson использоватьTestModel::class.java asGson is a Java library and only accepts Java class.

Наконец, мы проверяем, содержит ли объект результата правильные значения в исходной строке.

6. Заключение

В этой быстрой статье мы обсудили, как использовать Gson в Kotlin для преобразования Kotlindata class в строку JSON и наоборот.

Все примеры, как всегда, можно найтиover on GitHub.