kotlinx.serialization क्या है और इसकी ज़रूरत क्यों है?
kotlinx.serialization JetBrains की आधिकारिक लाइब्रेरी है जो Kotlin में डेटा को सीरियलाइज़ और डीसीरियलाइज़ करने के लिए बनाई गई है। यह Kotlin ऑब्जेक्ट्स को JSON, Protobuf, CBOR, YAML जैसे विभिन्न फॉर्मेट में बदलने का एक शक्तिशाली, टाइप-सेफ और मल्टीप्लेटफॉर्म तरीका प्रदान करती है।
इस लाइब्रेरी का उपयोग करने के मुख्य कारण:
- मल्टीप्लेटफॉर्म सपोर्ट: JVM, JS, Native (iOS, Android, Desktop) सभी पर काम करती है।
- टाइप सेफ्टी: सीरियलाइज़ेशन कंपाइल टाइम पर चेक हो जाता है, जिससे रनटाइम एरर नहीं आते।
- हाई परफॉर्मेंस: कंपाइलर प्लगइन के ज़रिए रिफ्लेक्शन का उपयोग सिर्फ ज़रूरत पड़ने पर करती है।
- लचीलापन: कस्टम सीरियलाइज़र, पॉलीमॉर्फिज़्म, ऑप्शनल फील्ड्स और भी बहुत कुछ सपोर्ट करती है।
- Kotlin के साथ पूर्ण इंटीग्रेशन: data class, sealed class, null safety जैसी Kotlin की सभी सुविधाओं का पूरा उपयोग करती है।
इंस्टॉलेशन और सेटअप
kotlinx.serialization का उपयोग करने के लिए आपको अपने प्रोजेक्ट में कंपाइलर प्लगइन और डिपेंडेंसी जोड़नी होगी।
1. प्लगइन जोड़ें (build.gradle.kts):
plugins {
kotlin("jvm") version "1.9.0" // या आपका Kotlin वर्जन
kotlin("plugin.serialization") version "1.9.0"
}
2. डिपेंडेंसी जोड़ें:
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
}
3. Maven (pom.xml) के लिए:
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>1.9.0</version>
<configuration>
<pluginOptions>
<option>plugin:org.jetbrains.kotlin.plugin.serialization</option>
</pluginOptions>
</configuration>
</plugin>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-serialization-json</artifactId>
<version>1.6.2</version>
</dependency>
त्वरित शुरुआत: पहला उदाहरण
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.encodeToString
import kotlinx.serialization.decodeFromString
// 1. सीरियलाइज़ेबल क्लास बनाएं
@Serializable
data class User(val name: String, val age: Int, val email: String? = null)
fun main() {
// 2. ऑब्जेक्ट बनाएं
val user = User("Ravi", 28, "ravi@example.com")
// 3. JSON में सीरियलाइज़ करें
val jsonString = Json.encodeToString(user)
println("सीरियलाइज़ किया गया JSON: $jsonString")
// 4. वापस डीसीरियलाइज़ करें
val decodedUser = Json.decodeFromString<User>(jsonString)
println("डीसीरियलाइज़ किया गया ऑब्जेक्ट: $decodedUser")
}
आउटपुट:
सीरियलाइज़ किया गया JSON: {"name":"Ravi","age":28,"email":"ravi@example.com"}
डीसीरियलाइज़ किया गया ऑब्जेक्ट: User(name=Ravi, age=28, email=ravi@example.com)
मुख्य मेथड्स और फंक्शन्स (8+)
1. Json.encodeToString()
क्या करता है: Kotlin ऑब्जेक्ट को JSON स्ट्रिंग में बदलता है।
पैरामीटर्स:
value(T) — सीरियलाइज़ करने वाला ऑब्जेक्ट।serializer(Serializer<T>?) — वैकल्पिक कस्टम सीरियलाइज़र।
val user = User("Sita", 22)
val json = Json.encodeToString(user)
println(json) // {"name":"Sita","age":22}
2. Json.decodeFromString()
क्या करता है: JSON स्ट्रिंग को Kotlin ऑब्जेक्ट में बदलता है।
पैरामीटर्स:
string(String) — JSON स्ट्रिंग।deserializer(DeserializationStrategy<T>) — वैकल्पिक डीसीरियलाइज़र।
पुस्तकालय में भी
स्विफ्ट (iOS/macOS) में कैशिंग: Redis, NSCache और अन्य समाधान
PHP में परीक्षण: फ्रेमवर्क और टूल का अवलोकन (PHPUnit, Pest, Codeception)
CoreBluetooth Swift: BLE ब्लूटूथ गाइड उदाहरण सहित