Kotlin Multiplatform Academy · บทเรียน

เชื่อม Serialization เข้ากับ Ktor

ติดตั้ง ContentNegotiation เพื่อถอดรหัสโดยอัตโนมัติ

บทเรียน 4 จาก 413 ขั้นตอน

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

หยุดแยกวิเคราะห์ด้วยตนเอง

คุณสามารถถอดรหัสการตอบกลับแต่ละรายการด้วยตนเองได้ แต่ Ktor สามารถเชื่อมต่อ การทำให้เป็นอนุกรมให้โดยอัตโนมัติ เพื่อให้คำขอและการตอบกลับกลายเป็นชนิดข้อมูลที่กำหนดไว้

ทำความรู้จัก ContentNegotiation

ปลั๊กอิน ContentNegotiation ช่วยให้ HttpClient แปลงเนื้อหาคำขอและการตอบกลับไปเป็นโมเดลและแปลงกลับได้

เพิ่มส่วนพึ่งพา

ขั้นแรก ให้เพิ่มอาร์ทิแฟกต์ content-negotiation ของ Ktor และโมดูลตัวแปลง JSON ลงใน commonMain

implementation("io.ktor:ktor-client-content-negotiation:2.3.12")

เพิ่มตัวเชื่อมต่อ JSON

คุณต้องรวมโมดูล ktor-serialization-kotlinx-json ด้วย ซึ่งเชื่อม Ktor เข้ากับ kotlinx.serialization โดยเฉพาะ

implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.12")

ติดตั้งในไคลเอนต์

ภายในตัวสร้าง HttpClient ให้คุณ ติดตั้ง ContentNegotiation และลงทะเบียนตัวแปลง json เพียงครั้งเดียว

install(ContentNegotiation) { json() }

กำหนดค่า Json

บล็อก json รับอินสแตนซ์ Json ที่กำหนดค่าแล้ว คุณจึงส่ง ignoreUnknownKeys และการตั้งค่าอื่นที่เกี่ยวข้องได้จากตรงนี้

json(Json { ignoreUnknownKeys = true })

ถอดรหัสโดยอัตโนมัติ

ตอนนี้ GET สามารถส่งคืนโมเดลของคุณได้โดยตรง Ktor จะอ่านเนื้อหาและส่งมอบ ออบเจ็กต์ ที่มีชนิดข้อมูลชัดเจนให้ โดยไม่ต้องเรียกการถอดรหัสด้วยตนเอง

val user: User = client.get(url).body()

เข้ารหัสเนื้อหาคำขอ

ปลั๊กอินเดียวกันนี้จะแปลงข้อมูลขาออกเป็นอนุกรมด้วย คุณจึงใช้ setBody กับออบเจ็กต์ Kotlin ได้ แล้ว Ktor จะเขียน JSON ให้

post(url) { setBody(user) }

กำหนดชนิดเนื้อหา

เมื่อส่งเนื้อหา ให้ระบุ contentType เป็น application/json เพื่อให้เซิร์ฟเวอร์อ่านข้อมูลได้ถูกต้อง

contentType(ContentType.Application.Json)

ตั้งค่าครั้งเดียว ใช้ได้ทั้งสองแอป

เนื่องจากทั้งหมดอยู่ใน commonMain Android และ iOS จึงใช้ การสื่อสารเครือข่ายแบบมีชนิดข้อมูลเดียวกัน โดยไม่ต้องเขียนโค้ดซ้ำ

สะอาดตั้งแต่ต้นจนจบ

Ktor ร่วมกับการทำให้เป็นอนุกรมมอบ กระบวนการทำงานที่เป็นระเบียบให้คุณ: เรียกปลายทาง รับโมเดล ส่งโมเดล และปลอดภัยด้านชนิดข้อมูลบนทุกแพลตฟอร์ม

ตรวจสอบอย่างรวดเร็ว

ปลั๊กอิน Ktor ใดที่เปิดใช้การถอดรหัส JSON ของการตอบกลับโดยอัตโนมัติ

ทบทวน

ติดตั้ง ContentNegotiation พร้อม json() ใน HttpClient เพื่อให้ Ktor เข้ารหัสเนื้อหาคำขอและถอดรหัสการตอบกลับเป็นโมเดลที่มีชนิดข้อมูลชัดเจนโดยอัตโนมัติในทั้งสองแอป

เริ่มต้นได้ฟรี

เรียนรู้ Kotlin ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

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

บทเรียน “เชื่อม Serialization เข้ากับ Ktor” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “เชื่อม Serialization เข้ากับ Ktor”

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

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

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

บทเรียน “เชื่อม Serialization เข้ากับ Ktor” ใช้เวลานานแค่ไหน

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

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

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

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

  1. โมเดลข้อมูล @Serializable
  2. @SerialName และการจับคู่ฟิลด์แบบกำหนดเอง
  3. ฟิลด์ที่เป็นค่า null ค่าเริ่มต้น และฟิลด์เสริม
  4. เชื่อม Serialization เข้ากับ Ktor
← กลับไปที่ Kotlin Multiplatform Academy