Serialize/Deserialize in kotlin with gson

Table of Contents

1. Serialize/Deserialize in kotlin with gson

1.1. JsonFactory

abstract class JsonFactory {
  inline fun <reified T> fromJson(json: String): T {
    return Gson().fromJson(json, T::class.java)
  }
}

data class Data(
  val a: String,
  val b: Int
) {
  companion object : JsonFactory()
}

val str = "{\"a\": \"hello\", \"b\": 123}"
val data: Data = Data.fromJson(str)
print("data: $data")

inline fun <reified T> String.gson(): T = Gson().fromJson(this, T::class.java)

val d = str.gson<Data>()
print("data: $d")