Kotlin में JSON प्रसंस्करण: लाइब्रेरीज़, उपकरण और कोड उदाहरण
\n\nJSON (JavaScript Object Notation) आधुनिक वेब डेवलपमेंट में डेटा आदान-प्रदान के सबसे लोकप्रिय प्रारूपों में से एक है। Kotlin में एप्लिकेशन बनाते समय, चाहे वह Android, बैकएंड या डेस्कटॉप हो, लगभग हमेशा JSON को पार्स और जनरेट करने की आवश्यकता होती है। इस लेख में, हम Kotlin में JSON के साथ काम करने के लिए मुख्य लाइब्रेरीज़, उनकी क्षमताओं, लाभों का विस्तार से विश्लेषण करेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।
\n\nKotlin में अलग JSON प्रसंस्करण की आवश्यकता क्यों है?
\n\nKotlin एक स्थिर रूप से टाइप की गई भाषा है जो JVM (साथ ही Native और JS) पर काम करती है। डायनामिक भाषाओं के विपरीत, जहां JSON को तुरंत शब्दकोश में बदला जा सकता है, Kotlin में टाइप किए गए ऑब्जेक्ट्स के साथ काम करने का चलन है। इससे कोड की विश्वसनीयता बढ़ती है और IDE को स्वचालित रूप से फ़ील्ड सुझाने की अनुमति मिलती है। JSON को Kotlin ऑब्जेक्ट्स (डेटा-क्लास) में और वापस बदलने के लिए सीरियलाइज़ेशन/डीसीरियलाइज़ेशन लाइब्रेरीज़ का उपयोग किया जाता है।
\n\nKotlin में JSON के लिए मुख्य लाइब्रेरीज़
\n\nहम तीन सबसे लोकप्रिय लाइब्रेरीज़ पर विचार करेंगे: kotlinx.serialization (JetBrains द्वारा अनुशंसित), Gson (Google द्वारा), और Moshi (Square द्वारा)।
\n\n1. kotlinx.serialization
\n\nयह Kotlin में सीरियलाइज़ेशन के लिए आधिकारिक लाइब्रेरी है, जिसे JetBrains द्वारा समर्थित किया गया है। यह मल्टीप्लेटफ़ॉर्म आधार (JVM, Native, JS) पर काम करती है और रिफ्लेक्शन का उपयोग नहीं करती है, जो उच्च प्रदर्शन और टाइप सुरक्षा प्रदान करती है।
\n\nस्थापना: build.gradle.kts में प्लगइन और निर्भरता जोड़ें:
plugins {\n kotlin("plugin.serialization") version "1.9.22"\n}\n\ndependencies {\n implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")\n}\n\nउपयोग का उदाहरण:
\n\nimport kotlinx.serialization.Serializable\nimport kotlinx.serialization.json.Json\nimport kotlinx.serialization.encodeToString\nimport kotlinx.serialization.decodeFromString\n\n@Serializable\ndata class User(val name: String, val age: Int, val email: String? = null)\n\nfun main() {\n val json = Json { prettyPrint = true; ignoreUnknownKeys = true }\n\n // सीरियलाइज़ेशन (ऑब्जेक्ट -> JSON)\n val user = User("एलेक्सी", 30, "alex@example.com")\n val jsonString = json.encodeToString(user)\n println(jsonString)\n\n // डीसीरियलाइज़ेशन (JSON -> ऑब्जेक्ट)\n val input = """{"name":"मारिया","age":25}"""\n val parsedUser = json.decodeFromString<User>(input)\n println(parsedUser)\n}\n\nविशेषताएँ:
\n- \n
- nullable फ़ील्ड का समर्थन (जैसे उदाहरण में
email)। \n - DSL के माध्यम से सेटिंग्स:
prettyPrint,ignoreUnknownKeysऔर अन्य। \n - enum, sealed-क्लास, नेस्टेड ऑब्जेक्ट्स के साथ कार्य। \n
- मल्टीप्लेटफ़ॉर्म — Android, iOS, वेब के लिए एक कोड। \n
2. Gson
\n\nGson Google की एक क्लासिक लाइब्रेरी है, जिसका Java दुनिया में व्यापक रूप से उपयोग किया जाता है। Kotlin में भी यह काम करती है, लेकिन nullable-प्रकारों और डेटा-क्लास के साथ सावधानी की आवश्यकता होती है।
\n\nस्थापना:
\n\ndependencies {\n implementation("com.google.code.gson:gson:2.10.1")\n}\n\nउदाहरण:
\n\nimport com.google.gson.Gson\nimport com.google.gson.GsonBuilder\n\ndata class Product(val id: Int, val title: String, val price: Double)\n\nfun main() {\n val gson: Gson = GsonBuilder().setPrettyPrinting().create()\n\n // सीरियलाइज़ेशन\n val product = Product(1, "लैपटॉप", 89999.99)\n val json = gson.toJson(product)\n println(json)\n\n // डीसीरियलाइज़ेशन\n val jsonString = """{"id":2,"title":"माउस","price":1500.50}"""\n val parsed = gson.fromJson(jsonString, Product::class.java)\n println(parsed)\n}\n\nमहत्वपूर्ण: Gson रिफ्लेक्शन का उपयोग करता है, इसलिए Kotlin डेटा-क्लास के लिए @JvmOverloads या सेटिंग की आवश्यकता हो सकती है पुस्तकालय में भी
अनुशंसाएँ