Convert JSON to kotlin data class and vise versa

JSON (JavaScript Object Notation) is a language independent data format, derived from JavaScript. It is very common data format , with a wide range of applications.

Most of the API provide response in JSON format . In this post I will show you how we can convert JSON to Kotlin Data Class and vise versa.

JSON to Kotlin Data Class

Gold.kt

package np.com.barahasoft.ourbarahakshetra.room.entity
import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "gold")
data class Gold (

        @PrimaryKey
        var id: Long? = 0,
        var gf_name: String? = null,
        var gt_name: String? = null,
        var sf_name: String? = null,
        var gf_price: Float? = null,
        var gt_price: Float? = null,
        var sf_price: Float? = null,
        var date: String? = null
        )

Conversion Code:

val jsonGoldData = "{"id":"5","gf_name":"Chhapawal","gt_name":"Tejabi","sf_name":"Silver","gf_price":"94800","gt_price":"94300","sf_price":"94300","date":"2020-10-11"}"
val gson = GsonBuilder().setLenient().create()
var gold = data.getAsJsonObject(jsonGoldData)
var tempGold = gson.fromJson(gold, Gold::class.java)

Converting ArrayList to gson string and vise versa

var arrayList = ArrayList<Long>()
arrayList.add(1)
arrayList.add(2)
arrayList.add(3) 
var strData = Gson().toJson(arrayList)//

var temp = Gson().fromJson(strData,Array<Long>::class.java).asList()//