Kotlin में JSON प्रोसेसिंग: लाइब्रेरीज़ और उपयोग के उदाहरण

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

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

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

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

अनुशंसाएँ