Gson: de Clase a Json

1*mzeb8jrt1rqozfcuand_ra

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

Published by Ariel Cupertino

I'm a computing engineer. I like to program in different programming languages. Mainly in Java and Python.

Leave a comment