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.