I have this code:
Type typeOfObjectsList = new TypeToken>() {}.getType();
List objectsList = new Gson().fromJso
inline fun T?.json() = this?.let { Gson().toJson(this, T::class.java) }
Example to use :
val list = listOf("1","2","3")
val jsonArrayAsString = list.json()
//output : ["1","2","3"]
val model= Foo(name = "example",email = "t@t.com")
val jsonObjectAsString = model.json()
//output : {"name" : "example", "email" : "t@t.com"}
inline fun String?.fromJson(): T? = this?.let {
val type = object : TypeToken() {}.type
Gson().fromJson(this, type)
}
Example to use :
val jsonArrayAsString = "[\"1\",\"2\",\"3\"]"
val list = jsonArrayAsString.fromJson>()
val jsonObjectAsString = "{ "name" : "example", "email" : "t@t.com"}"
val model : Foo? = jsonObjectAsString.fromJson()
//or
val model = jsonObjectAsString.fromJson()