0Pricing
Kotlin Academy · บทเรียน

การตั้งค่า kotlinx.serialization

เพิ่มปลั๊กอิน

การตั้งค่า kotlinx.serialization เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

kotlinx.serialization คืออะไร

kotlinx.serialization คือไลบรารี Kotlin อย่างเป็นทางการสำหรับแปลงออบเจ็กต์ไปเป็นและกลับจากรูปแบบต่าง ๆ เช่น JSON

  • Kotlin ล้วน พร้อมใช้งานหลายแพลตฟอร์ม
  • สร้างโค้ดขณะคอมไพล์ (ไม่ใช้รีเฟลกชัน)
  • ดูแลโดย JetBrains

ไลบรารีนี้ทำงานร่วมกับปลั๊กอินคอมไพเลอร์และไลบรารีรันไทม์

เหตุผลที่ต้องใช้ปลั๊กอินคอมไพเลอร์

ต่างจากไลบรารีที่อาศัยรีเฟลกชัน kotlinx.serialization จะสร้างตัวซีเรียลไลเซอร์ ขณะคอมไพล์

  • ทำงานเร็วกว่าและไม่มีต้นทุนรีเฟลกชันขณะรันไทม์
  • ทำงานบน Kotlin/Native และ JS ซึ่งมีข้อจำกัดด้านรีเฟลกชัน
  • ปลอดภัยด้านชนิดข้อมูลและได้รับการตรวจสอบโดยคอมไพเลอร์

ด้วยเหตุนี้จึงต้องใช้ปลั๊กอิน kotlin-serialization ไม่ใช่เพียงเพิ่มการพึ่งพาเท่านั้น

การใช้ปลั๊กอิน (DSL ของ Kotlin)

ใน build.gradle.kts ให้ใช้ปลั๊กอินการซีเรียลไลซ์ด้วยเวอร์ชันเดียวกับปลั๊กอิน Kotlin

plugins {
    kotlin("jvm") version "2.0.0"
    kotlin("plugin.serialization") version "2.0.0"
}

การเพิ่มการพึ่งพารันไทม์

ปลั๊กอินจะสร้างโค้ดให้ แต่ยังต้องใช้ไลบรารี รันไทม์ JSON ด้วย

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
}

การจัดเวอร์ชันให้ตรงกันมีความสำคัญ

เวอร์ชันของ plugin.serialization ต้องตรงกับเวอร์ชันคอมไพเลอร์ Kotlin ส่วนไลบรารีรันไทม์มีเวอร์ชันแยกเป็นอิสระ

  • เวอร์ชันปลั๊กอิน = เวอร์ชัน Kotlin (เช่น 2.0.0)
  • เวอร์ชันรันไทม์เป็นคนละส่วนกัน (เช่น 1.7.1)

เวอร์ชันปลั๊กอินกับ Kotlin ที่ไม่ตรงกันทำให้เกิดข้อผิดพลาดขณะสร้างที่เข้าใจได้ยาก

รูปแบบอื่น ๆ

JSON เป็นรูปแบบที่ใช้กันมากที่สุด แต่ kotlinx.serialization รองรับรูปแบบอื่นผ่านอาร์ทิแฟกต์เพิ่มเติม:

  • kotlinx-serialization-json — JSON
  • kotlinx-serialization-cbor — ไบนารี CBOR
  • kotlinx-serialization-protobuf — Protocol Buffers

ให้เพิ่มเฉพาะอาร์ทิแฟกต์ของรูปแบบที่ต้องการใช้เท่านั้น

เทียบเท่า DSL ของ Groovy

หากโครงการใช้ Groovy build.gradle แทน Kotlin DSL การตั้งค่าจะมีลักษณะดังนี้

// build.gradle (Groovy)
plugins {
    id 'org.jetbrains.kotlin.jvm' version '2.0.0'
    id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.0'
}

dependencies {
    implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1'
}

จุดเริ่มต้นของ Json

เมื่อตั้งค่าเรียบร้อยแล้ว ให้ใช้ออบเจ็กต์ Json จาก kotlinx.serialization.json เป็นจุดเริ่มต้นหลักสำหรับการเข้ารหัสและถอดรหัส

import kotlinx.serialization.json.Json

val format = Json
// format.encodeToString(...) / format.decodeFromString(...)

ตัวอย่างโค้ดที่ทำงานได้อย่างต่ำที่สุด

นี่คือตัวอย่างตั้งแต่ต้นจนจบที่สั้นที่สุด หลังจากกำหนดค่าปลั๊กอินและรันไทม์แล้ว

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

@Serializable
data class City(val name: String, val population: Int)

fun main() {
    val city = City("Istanbul", 15000000)
    val json = Json.encodeToString(city)
    println(json)
}

การตั้งค่าสำหรับหลายแพลตฟอร์ม

ในโครงการ Kotlin แบบหลายแพลตฟอร์ม ให้เพิ่มรันไทม์ลงใน commonMain เพื่อให้ทุกเป้าหมายใช้งานร่วมกัน

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
        }
    }
}

ข้อผิดพลาดที่พบบ่อยในการตั้งค่า

โปรดระวังปัญหาที่พบบ่อยต่อไปนี้:

  • ลืมเพิ่มปลั๊กอิน — จะได้รับข้อความ Serializer has not been found
  • เวอร์ชันปลั๊กอินไม่ตรงกับเวอร์ชัน Kotlin
  • เพิ่มรันไทม์แต่ไม่เพิ่มปลั๊กอิน หรือเพิ่มปลั๊กอินแต่ไม่เพิ่มรันไทม์
  • ไม่มีการนำเข้า encodeToString

ตรวจสอบความเข้าใจ

เหตุใด kotlinx.serialization จึงต้องใช้ปลั๊กอินคอมไพเลอร์ของ Gradle

ทบทวน

ได้ตั้งค่า kotlinx.serialization โดย:

  • ใช้ปลั๊กอิน kotlin("plugin.serialization") ที่ตรงกับเวอร์ชัน Kotlin
  • เพิ่มการพึ่งพารันไทม์ kotlinx-serialization-json
  • ใช้ออบเจ็กต์ Json เป็นจุดเริ่มต้น

ขั้นต่อไปคือใส่แอนโนเทชันให้คลาสโมเดลด้วย @Serializable

คำถามที่พบบ่อย

บทเรียน “การตั้งค่า kotlinx.serialization” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การตั้งค่า kotlinx.serialization” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การตั้งค่า kotlinx.serialization”

เพิ่มปลั๊กอิน คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การตั้งค่า kotlinx.serialization” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่า kotlinx.serialization
  2. คลาสที่ทำซีเรียลไลซ์ได้
  3. การเข้ารหัสและถอดรหัส JSON
  4. ซีเรียลไลเซอร์แบบกำหนดเอง
← กลับไปที่ Kotlin Academy