Kotlin में JSON प्रोसेसिंग: लाइब्रेरीज़ का अवलोकन और व्यावहारिक उदाहरण
JSON (JavaScript Object Notation) क्लाइंट और सर्वर के बीच डेटा आदान-प्रदान के लिए सबसे लोकप्रिय फॉर्मेट में से एक बना हुआ है। Kotlin भाषा में, जिसका उपयोग Android ऐप डेवलपमेंट और सर्वर-साइड समाधानों के लिए सक्रिय रूप से किया जाता है, JSON के साथ काम करने के लिए कई शक्तिशाली लाइब्रेरीज़ मौजूद हैं। इस लेख में हम मुख्य टूल्स: kotlinx.serialization, Gson, Moshi और Klaxon पर विस्तार से चर्चा करेंगे। आप सीखेंगे कि JSON को कैसे पार्स करें, ऑब्जेक्ट्स को सीरियलाइज़ करें और डेटा को कुशलतापूर्वक प्रोसेस करें।
1. kotlinx.serialization — JetBrains का मूल दृष्टिकोण
kotlinx.serialization Kotlin के निर्माताओं की आधिकारिक लाइब्रेरी है। इसका मुख्य लाभ भाषा की टाइप सिस्टम के साथ पूर्ण एकीकरण और मल्टीप्लेटफ़ॉर्म (KMM) के लिए समर्थन है। काम करने के लिए build.gradle.kts में प्लगइन जोड़ना होगा:
plugins { kotlin("plugin.serialization") version "1.9.22"}
dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")}डेटा सीरियलाइज़ेशन और डीसीरियलाइज़ेशन का उदाहरण:
import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Json
@Serializabledata class User(val id: Int, val name: String, val email: String)
fun main() { val jsonString = """{"id":1,"name":"अन्ना","email":"anna@example.com"}""" // डीसीरियलाइज़ेशन val user = Json.decodeFromString<User>(jsonString) println("उपयोगकर्ता: ${user.name}, ईमेल: ${user.email}") // सीरियलाइज़ेशन val output = Json.encodeToString(user) println(output)}विशेषताएँ:
- रिफ्लेक्शन की आवश्यकता नहीं (कंपाइल टाइम पर काम करता है)।
- कस्टम सीरियलाइज़र और पॉलीमॉर्फिज़्म को सपोर्ट करता है।
- Kotlin Multiplatform Mobile के लिए बहुत उपयुक्त।
2. Gson — Google की क्लासिक लाइब्रेरी
Gson लाइब्रेरी अपनी सादगी और व्यापक लोकप्रियता के लिए जानी जाती है। यह रिफ्लेक्शन का उपयोग करती है, इसलिए यह उन प्रोजेक्ट्स के लिए उपयुक्त है जहाँ सेटअप की गति महत्वपूर्ण है। जोड़ना:
dependencies { 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 json = """{"id":101,"title":"लैपटॉप","price":79990.0}""" // पार्सिंग val product = gson.fromJson(json, Product::class.java) println("उत्पाद: ${product.title}, कीमत: ${product.price}") // वापस कन्वर्ट करना val newJson = gson.toJson(product) println(newJson)}फायदे और नुकसान:
- + बुनियादी परिदृश्यों के लिए न्यूनतम कोड।
- + फ़ील्ड मैपिंग के लिए
@SerializedNameएनोटेशन का समर्थन। - - रिफ्लेक्शन का उपयोग प्रदर्शन को कम कर सकता है।
- -
nullऔर जेनेरिक टाइप्स को संभालने में समस्याएँ।
3. Moshi — Square की आधुनिक विकल्प
Moshi को Gson के अधिक सुरक्षित और तेज़ विकल्प के रूप में बनाया गया था। यह भी रिफ्लेक्शन का उपयोग करता है, लेकिन @JsonClass एनोटेशन के माध्यम से कोड जनरेशन प्रदान करता है। जोड़ना:
dependencies { implementation("com.squareup.moshi:moshi-kotlin:1.15.0") ksp("com.squareup.moshi:moshi-kotlin-codegen:1.15.0")}कोड जनरेशन के साथ उपयोग का उदाहरण:
import com.squareup.moshi.JsonClassimport com.squareup.moshi.Moshi
@JsonClass(generateAdapter = true)data class Book(val isbn: String, val author: String, val year: Int)
fun main() { val moshi = Moshi.Builder().build() val adapter = moshi.adapter(Book::class.java) val json = """{"isbn":"978-5-17-123456-7","autho पुस्तकालय में भी
iOS और macOS के लिए Swift में Markdown प्रसंस्करण: लाइब्रेरी और उदाहरण
जावा में HTML पार्सिंग: Jsoup, HtmlUnit और अन्य उपकरण
Rust के लिए Elasticsearch क्लाइंट: elasticsearch-rs लाइब्रेरी की पूरी गाइड