Convertendo a classe de dados Kotlin do JSON usando o GSON

Convertendo a classe de dados Kotlin do JSON usando o GSON

1. Visão geral

Neste breve tutorial, discutiremos comoconvert a data class in Kotlin to JSON string and vice versa using Gson Java library.

2. Dependência do Maven

Antes de começar, vamos adicionarGson ao nossopom.xml:


    com.google.code.gson
    gson
    2.8.5

3. KotlinData Class

Em primeiro lugar, vamos criar umdata class que converteremos em string JSON nas partes posteriores do artigo:

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

A classeTestModel consiste em 2 atributos:idename. Portanto, a string JSON que esperamos do Gson seria semelhante a:

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

4. Convertendo deData Class em String JSON

Agora, podemos usar Gson paraconvert objects of TestModel class to JSON:

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

Neste exemplo, estamos usandoAssert para verificar se a saída do Gson corresponde ao nosso valor esperado.

5. Convertendo de JSON String em umData Class

Claro, às vezes precisamosconvert 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")

Aqui, estamos convertendo a string JSON em um objetoTestModel dizendo ao Gson para usarTestModel::class.java asGson is a Java library and only accepts Java class.

Finalmente, testamos se o objeto de resultado contém os valores corretos na string original.

6. Conclusão

Neste artigo rápido, discutimos como usar Gson em Kotlin para converter um Kotlindata class em string JSON e vice-versa.

Todos os exemplos, como sempre, podem ser encontradosover on GitHub.