Kotlin में ऑब्जेक्ट सीरियलाइज़ेशन: लाइब्रेरीज़ और कोड उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin में ऑब्जेक्ट सीरियलाइज़ेशन: लाइब्रेरीज़ और टूल्स के लिए पूर्ण गाइड



सीरियलाइज़ेशन एक ऑब्जेक्ट को ऐसे फॉर्मेट में बदलने की प्रक्रिया है जिसे सेव किया जा सके (जैसे, फ़ाइल में) या नेटवर्क पर भेजा जा सके (REST API, Kafka मैसेज आदि के माध्यम से)। इसकी विपरीत प्रक्रिया — डीसीरियलाइज़ेशन — इस फॉर्मेट से ऑब्जेक्ट को पुनर्स्थापित करती है। Kotlin इकोसिस्टम में सीरियलाइज़ेशन के लिए कई शक्तिशाली लाइब्रेरीज़ हैं, प्रत्येक की अपनी विशेषताएँ हैं। इस लेख में हम चार मुख्य दृष्टिकोणों पर चर्चा करेंगे: kotlinx.serialization, Gson, Moshi और Jackson।



1. kotlinx.serialization — Kotlin के लिए मूल विकल्प



JetBrains द्वारा विकसित kotlinx.serialization लाइब्रेरी Kotlin प्रोजेक्ट्स के लिए "गोल्ड स्टैंडर्ड" है। यह मल्टीप्लेटफ़ॉर्म (JVM, JS, Native) को सपोर्ट करती है और कंपाइलेशन के समय कोड जनरेट करने के लिए एनोटेशन का उपयोग करती है।



कनेक्शन (Gradle)

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

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


उपयोग का उदाहरण

import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Json

@Serializabledata class User(val name: String, val age: Int, val email: String? = null)

fun main() { val user = User("इवान", 30, "ivan@example.com")

// JSON में सीरियलाइज़ेशन val jsonString = Json.encodeToString(user) println(jsonString) // {"name":"इवान","age":30,"email":"ivan@example.com"}

// JSON से डीसीरियलाइज़ेशन val decoded = Json.decodeFromString<User>(jsonString) println(decoded) // User(name=इवान, age=30, email=ivan@example.com)}


विशेषताएँ

  • Null safety: ? के माध्यम से nullable-फ़ील्ड का समर्थन
  • पॉलीमॉर्फ़िज़्म: sealed class और पदानुक्रमों का सीरियलाइज़ेशन
  • कस्टम फॉर्मेट: JSON, CBOR, Protobuf, Properties
  • प्रदर्शन: बिना रिफ्लेक्शन के कोड जनरेशन


2. Gson — Google से क्लासिक



Gson Java/Kotlin के लिए सबसे पुरानी लाइब्रेरीज़ में से एक है। इसका उपयोग करना सरल है, लेकिन यह रिफ्लेक्शन का उपयोग करता है, जो बड़े डेटा वॉल्यूम पर प्रदर्शन को कम कर सकता है।



कनेक्शन

implementation("com.google.code.gson:gson:2.10.1")


उदाहरण

import com.google.gson.Gson

data class Product(val id: Int, val title: String, val price: Double)

fun main() { val gson = Gson() val product = Product(1, "लैपटॉप", 79999.99)

// सीरियलाइज़ेशन val json = gson.toJson(product) println(json) // {"id":1,"title":"लैपटॉप","price":79999.99}

// डीसीरियलाइज़ेशन val restored = gson.fromJson(json, Product::class.java) println(restored) // Product(id=1, title=लैपटॉप, price=79999.99)}


विशेषताएँ

  • सरलता: न्यूनतम कॉन्फ़िगरेशन
  • लचीलापन: जटिल प्रकारों के लिए कस्टम TypeAdapter
  • कमियाँ: रिफ्लेक्शन, Kotlin data class के लिए मूल समर्थन नहीं (प्लगइन या @JvmField की आवश्यकता)


3. Moshi — Gson का आधुनिक विकल्प



Square का Moshi एक हल्की लाइब्रेरी है जो Kotlin के लिए आउट-ऑफ़-द-बॉक्स समर्थन प्रदान करती है। यह एनोटेशन के माध्यम से कोड जनरेशन का उपयोग करती है, जो इसे Gson से तेज़ बनाती है।



कनेक्शन

implementation("com.squareup.moshi:moshi-kotlin:1.15.0")kapt("com.squareup.moshi:moshi-kotlin-codegen:1.15.0") // कोड जनरेशन के लिए


उदाहरण

import com.squareup.moshi.Moshiimport com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

@JsonClass(generateAdapter = true)data class Book(val isbn: String, val title: String, val authors:

अनुशंसाएँ