Kotlin
JSON
Moshi

KotlinでMoshiを使って、Json → List<Class>, List<Class> -> Jsonを行うExtension

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
}