Kotlin Data Class from Json using GSON

erluxman picture erluxman · May 22, 2017 · Viewed 81.5k times · Source

I have Java POJO class like this:

class Topic {
    @SerializedName("id")
    long id;
    @SerializedName("name")
    String name;
}

and I have a Kotlin data class Like this

 data class Topic(val id: Long, val name: String)

How to provide the json key to any variables of the kotlin data class like the @SerializedName annotation in java variables ?

Answer

Anton Holovin picture Anton Holovin · May 22, 2017

Data class:

data class Topic(
  @SerializedName("id") val id: Long, 
  @SerializedName("name") val name: String, 
  @SerializedName("image") val image: String,
  @SerializedName("description") val description: String
)

to JSON:

val gson = Gson()
val json = gson.toJson(topic)

from JSON:

val json = getJson()
val topic = gson.fromJson(json, Topic::class.java)