JSONをシリアライズ、デシリアライズする方法【Kotlin】

KotlinでJSONをシリアライズ、デシリアライズする方法を紹介します。

kotlinx.serializationというライブラリを使用します。

ビルドツールはGradle Kotlinを使用しています。

kotlinx.serializationのGitHubのページにMavenの使い方なども書いています。

コード

build.gradle.ktsに以下を追加します。

plugins {
    kotlin("jvm") version "1.6.10"
    kotlin("plugin.serialization") version "1.6.10" // ここを追加
    application
}

dependencies {
    testImplementation(kotlin("test"))
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2") // ここを追加
}

GitHubのサンプルとほぼ同じですが、以下のようにしてJSONのシリアライズ、デシリアライズが可能となりました。

対象のクラスに@Serializableをつけるだけで変換することができます。

import kotlinx.serialization.*
import kotlinx.serialization.json.*

@Serializable
data class Person(
    val name : String,
    val age : Int
)

fun main(args: Array<String>) {
    val jsonString = """{ "name" : "taro", "age" : 10 }"""
    // デシリアライズ
    val person = Json.decodeFromString<Person>(jsonString)
    println(person)

    // シリアライズ
    val personJson = Json.encodeToString(person)
    println(personJson)
}

出力結果

Person(name=taro, age=10)
{"name":"taro","age":10}

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA