Posted at

Kotlinで配列のJson文字列をGsonでparseする


Json文字列(単独) ->  任意クラス

"{a=A, b=B}"みたいなJson文字列を下記HogeDataに変換したい場合


HogeData.kt

data class HogeData(

var a: String,
var b: String
)


Hoge.kt

val strJson = "{a=A, b=B}"

val hogeData = Gson().fromJson(strJson, HogeData::class.java)
val a = hogeData.a


Json文字列(配列) -> 任意のクラスのList

"[{a=A, b=B},{a=AAA,b=BBB}]"みたいなJson配列の文字列を下記HogeDataのList型に変換したい場合


HogeData.kt

data class HogeData(

var a: String,
var b: String
)


Hoge.kt

val strJson = "[{a=A, b=B},{a=AAA,b=BBB}]"

val listType = object : TypeToken<List<HogeData>>() {}.type
val hogeData = Gson().fromJson<List<HogeData>>(strJson, listType)
val a = hogeData[0].a