Преобразуване на клас данни 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 се състои от 2 атрибута: 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 String в клас данни

Разбира се, понякога трябва да конвертираме от 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.