การตั้งค่า 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— JSONkotlinx-serialization-cbor— ไบนารี CBORkotlinx-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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่า kotlinx.serialization
- คลาสที่ทำซีเรียลไลซ์ได้
- การเข้ารหัสและถอดรหัส JSON
- ซีเรียลไลเซอร์แบบกำหนดเอง