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

1. Обзор

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

2. Зависимость от Maven

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

 com.google.code.gson gson 2.8.5 

3. Класс данных Kotlin

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

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

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

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

4. Преобразование из класса данных в строку JSON

Теперь мы можем использовать Gson для преобразования объектов класса TestModel в JSON :

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

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

5. Преобразование из строки JSON в класс данных

Конечно, иногда нам нужно преобразовать из JSON в объекты данных :

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, поскольку Gson является библиотекой Java и принимает только класс Java .

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

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

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

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