En este post veremos cómo pasar un objeto a un formato Json.
Importamos las dependencias necesarias (com.google.code.gson):
dependencies { compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5' }
build.gradle completo:
buildscript { ext.kotlin_version = '1.3.10' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin' apply plugin: 'application' mainClassName = "com.codemonkey.Main" repositories { mavenCentral() } dependencies { compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5' compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" }
Creamos una clase con cuatro atributos (no será necesario crear un archivo aparte).
data class Modelo( @SerializedName("id") val id: Long, @SerializedName("nombre") val nombre: String, @SerializedName("valor") val valor: Double, @SerializedName("descripcion") val descripcion: String )
En nuestro Main.kt
//Definimos un objeto tipo Gson val gson:Gson=Gson(); //Definimos un objeto tipo Modelo y le asignamos valores val modelo:Modelo=Modelo(1,"DEV-1200",3400.10,"Codificador Serial Multiplexor")
Convertimos el objeto modelo a formato Json:
val classToJson = gson.toJson(modelo);
Imprimimos en pantalla:
println("Clase: ${modelo}"); //Clase: Modelo(id=1, nombre=DEV-1200, valor=3400.1, descripcion=Codificador Serial Multiplexor) println("Json: ${classToJson}") //Json: {"id":1,"nombre":"DEV-1200","valor":3400.1,"descripcion":"Codificador Serial Multiplexor"}
Código completo:
Main.kt
package com.codemonkey import spark.Spark.*; import com.google.gson.Gson; import com.google.gson.JsonParseException; import com.google.gson.annotations.* object Main { @JvmStatic fun main(args:Array){ demoMockA(); } fun demoMockA():Unit{ val gson:Gson=Gson(); val modelo:Modelo=Modelo(1,"DEV-1200",3400.10,"Codificador Serial Multiplexor") val classToJson = gson.toJson(modelo); println("Clase: ${modelo}"); //Clase: Modelo(id=1, nombre=DEV-1200, valor=3400.1, descripcion=Codificador Serial Multiplexor) println("Json: ${classToJson}") //Json: {"id":1,"nombre":"DEV-1200","valor":3400.1,"descripcion":"Codificador Serial Multiplexor"} } } data class Modelo( @SerializedName("id") val id: Long, @SerializedName("nombre") val nombre: String, @SerializedName("valor") val valor: Double, @SerializedName("descripcion") val descripcion: String )
Construimos:
$ gradle build
Ejecutamos:
$ gradle build