依賴

libs.versions.toml

[versions]
...

kotlinx-serialization = "1.8.1"

[libraries]
...

kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization"}

[plugins]
...

kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

build.gradle.kt (Project level)

plugins {
    ...

    alias(libs.plugins.kotlin.serialization) apply false
}

build.gradle.kt (Module level: app)

plugins {
   ...

    alias(libs.plugins.kotlin.serialization)
}

android {
    ...
}

dependencies {

    ...

    implementation(libs.kotlinx.serialization.json)

}

範例程式碼

先來個簡單的例子,讓 App 跑起來

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            MyLab01Theme {
                Column(
                    modifier = Modifier.padding(50.dp)
                ) {
                    // 建一個 Serializable UserDto 類別的實例
                    val data = UserDto("Steve", "steve@abc.com")
                    
                    // 然後把到轉成 String 格式
                    val userString = Json.encodeToString(data)
                    Text(text = userString)
                    
                    // 再從 String 格式轉成 UserDto 的類別實例
                    val userDto = Json.decodeFromString<UserDto>(userString)
                    Text(text = userDto.name)

                }
            }
        }
    }
}

@Serializable
data class UserDto(
    val name: String,
    val email: String
)

Reference

Kotlin Docs: Serialization

Kotlin — 使用kotlinx serialization來解析JSON -JLin

[Kotlin 全面啟動] Serialization

Last modified: 2025 年 6 月 29 日

Author

Comments

Write a Reply or Comment

Your email address will not be published.