Avatar ·

Como fazer parse de JSON em Kotlin: melhores bibliotecas e exemplos de código

Olá, colegas! Acabei de começar a estudar Kotlin depois de Java e me deparei com uma tarefa típica — preciso fazer parse de uma string JSON para um objeto. Em Java, eu usava Gson ou Jackson, mas em Kotlin quero fazer isso de forma elegante e idiomática. Eu tenho este JSON de uma API:
{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}
Tentei usar o JSONObject embutido do Android SDK, mas o código fica horrível:
val jsonString = """{"userId":1,"id":1,"title":"delectus aut autem","completed":false}"""
val jsonObject = JSONObject(jsonString)
val userId = jsonObject.getInt("userId")
val id = jsonObject.getInt("id")
val title = jsonObject.getString("title")
val completed = jsonObject.getBoolean("completed")
Isso é um inferno! Para cada campo preciso escrever uma chamada separada, é fácil errar no nome do campo, e os tipos precisam ser especificados manualmente. E se o JSON for aninhado ou contiver arrays — é um pesadelo total. Me ajudem