Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Android: kotlinx.serialization 1.0.1

  • kotlin: 1.4.10
  • kotlinx.serialization: 1.0.1

Jsonのパースをkotlinx.serializationの0.2.0で行っていましたが、Kotlinが1.4になったことにより、いろいろ変わったみたいなのでやり直し。

https://kotlinlang.org/docs/reference/serialization.html

導入

build.gradle(app)の記述だけでよくなったようです。

build.gradle(app)
plugins {
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.4.10'
}

dependencies {
    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1"
}

実装

テストコードで実行。ドキュメントのサンプルそのままです。

package jp.co.sankosc.jsonsample

import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import org.junit.Test

@Serializable
data class Data(val a: Int, val b: String)

class ExampleUnitTest {

    @Test
    fun jsonTest() {
        val string = Json.encodeToString(Data(42, "str"))
        println(string)
        val obj = Json.decodeFromString<Data>(string)
        println(obj)

        val dataList = listOf(Data(42, "test1"), Data(12, "test2"))
        val jsonList = Json.encodeToString(dataList)
        println(jsonList)
        val objList = Json.decodeFromString<List<Data>>(jsonList)
        println(objList)
    }
}
実行結果
{"a":42,"b":"str"}
Data(a=42, b=str)
[{"a":42,"b":"test1"},{"a":12,"b":"test2"}]
[Data(a=42, b=test1), Data(a=12, b=test2)]
nozaki-sankosc
東京都中央区にある三幸システムの野崎です。 Android, iOS, PHPなどのライブラリを公開していきたいと思います。
https://www.sankosc.co.jp
sankosc
東京都中央区にある三幸システム株式会社です。PHP, Android, iOS, Windows, AWS, Lambdaなどで開発をしています。新しい技術、基本的な技術など共有していきます。
https://www.sankosc.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away