droidrcc
05/10/2018, 2:39 PMaraqnid
05/10/2018, 3:50 PMaraqnid
05/10/2018, 3:56 PMaraqnid
05/10/2018, 4:05 PMinline fun <reified T : Any> listTypeToken(): TypeToken<List<T>> = TypeToken.getParameterized(List::class.java, T::class.java) as TypeToken<List<T>>
inline fun <reified T : Any> listToJsonString(list: List<T>?): String? {
val listType = listTypeToken<T>().type
println("generic listType=$listType")
return Gson().toJson(list, listType)
}
inline fun <reified T : Any> jsonStringToList(json: String?): List<T>? {
val listType = listTypeToken<T>().type
println("generic listType=$listType")
return Gson().fromJson(json, listType)
}
fun fooListToJsonString(list: List<Foo>?): String? {
val listType = listTypeToken<Foo>().type
return Gson().toJson(list, listType)
}
fun jsonStringToFooList(json: String?): List<Foo>? {
val listType = listTypeToken<Foo>().type
return Gson().fromJson(json, listType)
}