Преобразование класса данных 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.