javajsongsonkotlindata-class

Kotlin Data Class from Json using GSON


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 ?


Solution

  • 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)