Este artículo se tradujo automáticamente con la API de Google Cloud Translation.
Algunas páginas pueden leerse mejor que el original.
Con la creciente popularidad de Kotlin, no sorprende que cada vez más desarrolladores busquen formas de trabajar con este lenguaje al analizar y serializar datos JSON.
En este artículo, veremos algunos de los métodos más populares para hacer esto.
La primera y más obvia forma de analizar JSON en Kotlin es usar la clase JSON integrada de la biblioteca estándar de Kotlin.
Esta clase proporciona una serie de métodos para leer y escribir datos JSON, así como para realizar tareas comunes, como convertir datos JSON hacia y desde objetos Kotlin.
Uno de los métodos más útiles en la clase JSON es el método parse()
, que se puede usar para analizar una cadena JSON en un JsonObject
de Kotlin:
val jsonString = """
{
"foo": "bar",
"baz": 42
}
"""
val jsonObject = JSON.parse(jsonString)
Una vez que tenga un JsonObject
, puede usar varios métodos en esa clase para acceder a los datos que contiene. Por ejemplo, el método get()
se puede usar para recuperar el valor de una clave específica:
val foo = jsonObject.get("foo") // "bar"
Si necesita analizar una matriz JSON, puede usar el método parseArray()
, que devolverá una JsonArray
. Esta clase proporciona métodos similares a la clase JsonObject
, como get()
y size()
, que se pueden usar para recuperar datos de la matriz.
Otra forma popular de analizar JSON en Kotlin es usar la biblioteca Gson.
Gson es una biblioteca de Java que se puede usar para convertir objetos de Java hacia y desde datos JSON. También tiene una excelente compatibilidad con Kotlin y se puede usar para analizar datos JSON en objetos de Kotlin.
Para usar Gson, primero debe agregarlo a su proyecto. Si está utilizando Gradle, puede agregar la siguiente dependencia a su archivo build.gradle
:
implementation 'com.google.code.gson:gson:2.8.5'
Una vez que se agrega Gson a su proyecto, puede crear una instancia Gson
y usarla para analizar datos JSON:
val gson = Gson()
val jsonString = """
{
"foo": "bar",
"baz": 42
}
"""
val jsonObject = gson.fromJson(jsonString, JsonObject::class.java)
Como puedes ver, el método fromJson()
toma una cadena JSON y una clase Kotlin como parámetros. La clase JsonObject
es un contenedor de Kotlin alrededor de la clase estándar Java JsonObject
.
Una vez que tenga un JsonObject
, puede usar varios métodos en esa clase para acceder a los datos que contiene. Por ejemplo, el método get()
se puede usar para recuperar el valor de una clave específica:
val foo = jsonObject.get("foo") // "bar"
Si necesita analizar una matriz JSON, puede usar el método fromJson()
con una clase JsonArray
. Esta clase proporciona métodos similares a la clase JsonObject
, como get()
y size()
, que se pueden usar para recuperar datos de la matriz.
Otra forma popular de analizar JSON en Kotlin es usar la biblioteca Jackson.
Jackson es una biblioteca de Java que se puede usar para convertir objetos de Java hacia y desde datos JSON. También tiene una excelente compatibilidad con Kotlin y se puede usar para analizar datos JSON en objetos de Kotlin.
Para usar Jackson, primero debe agregarlo a su proyecto. Si está utilizando Gradle, puede agregar la siguiente dependencia a su archivo build.gradle
:
implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
Una vez que Jackson se agrega a su proyecto, puede crear una instancia de ObjectMapper
y usarla para analizar datos JSON:
val objectMapper = ObjectMapper()
val jsonString = """
{
"foo": "bar",
"baz": 42
}
"""
val jsonObject = objectMapper.readValue(jsonString, JsonNode::class.java)
Como puedes ver, el método readValue()
toma una cadena JSON y una clase Kotlin como parámetros. La clase JsonNode
es un contenedor de Kotlin alrededor de la clase estándar JsonNode
de Java.
Una vez que tenga un JsonNode
, puede usar varios métodos en esa clase para acceder a los datos que contiene. Por ejemplo, el método get()
se puede usar para recuperar el valor de una clave específica:
val foo = jsonObject.get("foo") // "bar"
Si necesita analizar una matriz JSON, puede usar el método readValue()
con una clase JsonNode
. Esta clase proporciona métodos similares a la clase JsonObject
, como get()
y size()
, que se pueden usar para recuperar datos de la matriz.
La biblioteca estándar de Kotlin también proporciona varios métodos para serializar datos JSON.
El método más utilizado es el método stringify()
, que se puede usar para serializar un JsonObject
en una cadena JSON:
val jsonObject = JsonObject(mapOf("foo" to "bar", "baz" to 42))
val jsonString = JSON.stringify(jsonObject)
Si necesita serializar una matriz JSON, puede usar el método stringify()
con JsonArray
.
La biblioteca Gson también se puede usar para serializar datos JSON.
Para hacer esto, primero debe crear una instancia Gson
y luego llamar al método toJson()
en esa instancia, pasando el objeto que desea serializar:
val gson = Gson()
val jsonObject = JsonObject(mapOf("foo" to "bar", "baz" to 42))
val jsonString = gson.toJson(jsonObject)
Si necesita serializar una matriz JSON, puede usar el método toJson()
con un JsonArray
.
La biblioteca Jackson también se puede utilizar para serializar datos JSON.
Para hacer esto, primero debe crear una instancia de ObjectMapper
y luego llamar al método writeValueAsString()
en esa instancia, pasando el objeto que desea serializar:
val objectMapper = ObjectMapper()
val jsonObject = JsonObject(mapOf("foo" to "bar", "baz" to 42))
val jsonString = objectMapper.writeValueAsString(jsonObject)
Si necesita serializar una matriz JSON, puede usar el método writeValueAsString()
con JsonArray
.
En este artículo, analizamos algunos de los métodos más populares para analizar y serializar datos JSON en Kotlin.
Hemos visto cómo usar la clase JSON integrada de la biblioteca estándar de Kotlin, así como también cómo usar las bibliotecas Gson y Jackson.
El método que elija dependerá en última instancia de sus propias preferencias personales.