こんにちは、お忙しいところ、質問ページを開いていただきありがとうございます!
今回私が挑戦しているのは、SharedPreferenceに保存した文字列をオブジェクトに変換することです。
現在、getString
をすると、
"[{"id": 1, "body": "ごはん"}, {"id": 2, "body": "もねる"}]"
という文字列が返ってくるのですが、これをKotlinで扱えるようにオブジェクトに変換したいと思っています。しかし、方法がわかりません。やりたいこととしては、
kotlin
1data class TagModel( 2 val id: Int, 3 val body: String 4)
こうしたデータクラスが複数入った配列[TagModel(), TagModel()]
という形で取得したいと考えています。そのためにはまずは文字列を分解する手段を知るべきでしょうか、Kotlinについて初心者なため、はじめの一歩で躓いてしまっております。
追記:
kotlin
1@Serializable 2class TagModel(val id: Int, val body: String) 3 4val jsonString = """{"id": 1, "body": "あさごはん"}""" 5val tag = Json.decodeFromString<TagModel>(jsonString)
とすることで、Jsonをオブジェクトにすることができました。しかしながら配列を含んだJsonを変換しようとすると、
kotlin
1val jsonString = """[{"id": 1, "body": "あさごはん"}, {"id": 2, "body": "よるごはん"}]""" 2val tag = Json.decodeFromString<TagModel>(jsonString)
Caused by: kotlinx.serialization.json.internal.JsonDecodingException: Expected start of the object '{', but had 'EOF' insteadJSON input: [{"id": 1, "body": "あさごはん"}, {"id": 2, "body": "よるごはん"}]
というエラーで先に進めなくなってしまいました。
回答1件
あなたの回答
tips
プレビュー