Kotlin में JSON के साथ काम करना: शुरुआती लोगों के लिए पार्सिंग और सीरियलाइज़ेशन
\n\nJSON (JavaScript Object Notation) आधुनिक वेब एप्लिकेशन और API में डेटा आदान-प्रदान का सबसे लोकप्रिय प्रारूप है। यदि आपने Kotlin सीखना शुरू किया है, तो देर-सबेर आपको JSON स्ट्रिंग्स को अपने एप्लिकेशन की ऑब्जेक्ट्स में बदलने (डीसीरियलाइज़ेशन या पार्सिंग) और वापस (सीरियलाइज़ेशन) की आवश्यकता का सामना करना पड़ेगा।
\n\nइस लेख में, हम तीन लोकप्रिय लाइब्रेरीज़: kotlinx.serialization, Gson और Moshi के उदाहरणों के साथ Kotlin में JSON के साथ काम करने के मुख्य तरीकों पर चर्चा करेंगे। आप सीखेंगे कि बिना किसी अनावश्यक जटिलता के JSON को पार्स करना और डेटा को सीरियलाइज़ करना कैसे शुरू करें।
\n\nJSON पार्सिंग और सीरियलाइज़ेशन क्या है?
\n\nकोड पर जाने से पहले, आइए शब्दों को परिभाषित करें:
\n\n- \n
- सीरियलाइज़ेशन — यह किसी ऑब्जेक्ट (उदाहरण के लिए, Kotlin डेटा क्लास) को JSON प्रारूप की स्ट्रिंग में बदलने की प्रक्रिया है। \n
- पार्सिंग (डीसीरियलाइज़ेशन) — यह विपरीत प्रक्रिया है: JSON स्ट्रिंग से हम एक निश्चित प्रकार की ऑब्जेक्ट प्राप्त करते हैं। \n
Kotlin में JSON के साथ इंटरैक्शन को कई तरीकों से व्यवस्थित किया जा सकता है। भाषा में JSON के लिए कोई अंतर्निहित समर्थन नहीं है, इसलिए हम तृतीय-पक्ष लाइब्रेरीज़ का उपयोग करते हैं।
\n\nkotlinx.serialization लाइब्रेरी (अनुशंसित तरीका)
\n\nkotlinx.serialization JetBrains की आधिकारिक लाइब्रेरी है, जो Kotlin भाषा के साथ पूरी तरह से एकीकृत होती है। यह मल्टीप्लेटफ़ॉर्म (JVM, JS, Native) का समर्थन करती है और संकलन चरण में काम करती है, जो इसे बहुत तेज़ और सुरक्षित बनाती है।
स्थापना
\n\nbuild.gradle.kts फ़ाइल में प्लगइन जोड़ें:
plugins {\n kotlin("plugin.serialization") version "1.9.0"\n}\n\ndependencies {\n implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")\n}\n\nउदाहरण: JSON पार्सिंग
\n\nमान लीजिए कि हमारे पास उपयोगकर्ता डेटा के साथ एक JSON है:
\n\n{\n "name": "इवान",\n "age": 28,\n "email": "ivan@example.com"\n}\n\nएक data class बनाएं और इसे @Serializable एनोटेशन से चिह्नित करें:
import kotlinx.serialization.Serializable\nimport kotlinx.serialization.json.Json\n\n@Serializable\ndata class User(\n val name: String,\n val age: Int,\n val email: String\n)\n\nfun main() {\n val jsonString = """\n {"name": "इवान", "age": 28, "email": "ivan@example.com"}\n """.trimIndent()\n\n val user = Json.decodeFromString<User>(jsonString)\n println(user) // User(name=इवान, age=28, email=ivan@example.com)\n}\n\nउदाहरण: JSON में सीरियलाइज़ेशन
\n\nfun main() {\n val user = User(name = "अन्ना", age = 25, email = "anna@example.com")\n val jsonString = Json.encodeToString(user)\n println(jsonString)\n // {"name":"अन्ना","age":25,"email":"anna@example.com"}\n}\n\nलाभ: टाइप सुरक्षा, गति, रिफ्लेक्शन का अभाव, nullable फ़ील्ड, डिफ़ॉल्ट मान और नेस्टेड ऑब्जेक्ट्स के लिए समर्थन।
\n\nGson लाइब्रेरी (Google से)
\n\nGson JVM इकोसिस्टम में JSON के साथ काम करने के लिए सबसे पुरानी और सबसे लोकप्रिय लाइब्रेरीज़ में से एक है। इसका उपयोग करना आसान है, लेकिन यह रिफ्लेक्शन का उपयोग करती है, जो kotlinx.serialization की तुलना में थोड़ा धीमा है।
\n\nस्थापना
\n\ndependencies {\n implementation("com.google.code.gson:gson:2.10.1")\n}\n\nउदाहरण: JSON पार्सिंग
\n\nimport com.google.gson.Gson\n\ndata class Product(\n val id: Int,\n val title: String,\n val price: Double\n)\n\nfun main() {\n val gson = Gson()\n val jsonString = """{"id": 101, "title": "लैपटॉप", "price": 75000.0}"""\n\n val product = gson.fromJson(jsonString, Product::class.java)\n println(product) // Product(id=101, title=लैपटॉप, price=75000.0)\n}\n\nउदाहरण: JSON में सीरियलाइज़ेशन
\n\nfun main() {\n val product = Product(id = 202, title = "माउस", price = 2