Jsonをデコードする記事はたくさん有りましたが、今回はMap
をdata class
に変換する方法を紹介します。
Mapを変換するために基本の依存関係の他に以下の依存関係が必要です。
implementation "org.jetbrains.kotlinx:kotlinx-serialization-properties:バージョン"
Mapから以下のようなモデルに変換する例を考えます。
@Serializable
data class Employee(val id:Int, val name: String) {}
デコードするためのコードはこんな感じ。
val map:Map<String,Any> = mapOf(
"id" to 1,
"name" to "sekitaka_1214"
)
val employee = Properties.decodeFromMap<Employee>(map)
Log.d("Employee",employee.toString())
以下のようにMapが意図したEmployeeクラスのインスタンスにデコードされています。
Employee(id=1, name=sekitaka_1214)