ToDo あとで説明書く予定(まずコードのみ)
変換したJsonはPreferencesに保存を想定
StringExtension.kt
/**
* JsonのStringを特定クラスのListに変換する
*/
inline fun <reified T> String.jsonToList(): List<T>? {
val moshi = Moshi.Builder().build()
val listMyData = Types.newParameterizedType(List::class.java, T::class.java)
val jsonAdapter: JsonAdapter<List<T>> = moshi.adapter(listMyData)
try {
return jsonAdapter.fromJson(this)
} catch (e: Exception) {
LogUtils.d("ERROR:", "JsonParseError : ${e.message}")
}
return null
}
/**
* JsonのStringを特定クラスに変換する
*/
inline fun <reified T> String.jsonToObject() : T? {
val moshi = Moshi.Builder().build()
val jsonAdapter: JsonAdapter<T> = moshi.adapter(T::class.java)
try {
return jsonAdapter.fromJson(this)
} catch (e: Exception) {
LogUtils.d("ERROR:", "JsonParseError : ${e.message}")
}
return null
}