परिचय: Kotlin को JSON के साथ काम करना क्यों सीखें?
\n\nJSON (JavaScript Object Notation) एक हल्का डेटा एक्सचेंज फ़ॉर्मेट है जो आधुनिक वेब एप्लिकेशन और API का मानक बन गया है। अगर आप Kotlin में कोड लिख रहे हैं, चाहे वह Android ऐप हो या सर्वर-साइड, तो देर-सबेर आपको सर्वर से JSON रिस्पॉन्स पार्स करना होगा या अपने ऑब्जेक्ट को JSON में सीरियलाइज़ करना होगा।
\n\nKotlin एक आधुनिक भाषा है जो JVM पर चलती है और Java के साथ पूरी तरह संगत है। लेकिन Kotlin के पास JSON के साथ काम करने के लिए अपने शक्तिशाली टूल्स हैं जो कोड को अधिक संक्षिप्त और सुरक्षित बनाते हैं। इस लेख में हम दो सबसे लोकप्रिय तरीकों को समझेंगे: आधिकारिक लाइब्रेरी kotlinx.serialization और समय-परीक्षित Gson।
\n\nयह लेख शुरुआती लोगों के लिए है। हम एक साधारण स्ट्रिंग पार्स करने से शुरू करेंगे, फिर जटिल नेस्टेड स्ट्रक्चर बनाएंगे, और अंत में सीरियलाइज़ेशन को कवर करेंगे—अपने ऑब्जेक्ट को वापस JSON में बदलना।
\n\n1. प्रोजेक्ट तैयार करना: डिपेंडेंसी और इम्पोर्ट्स
\n\nकोड लिखने से पहले, लाइब्रेरीज़ जोड़नी होंगी। हम दो विकल्प देखेंगे।
\n\n1.1. kotlinx.serialization इंस्टॉल करना
\n\nयह JetBrains का आधिकारिक समाधान है। build.gradle.kts फ़ाइल में जोड़ें:
plugins {\n kotlin("jvm") version "1.9.0"\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\n1.2. Gson इंस्टॉल करना
\n\nGson Google की लाइब्रेरी है। यह सेटअप में आसान है लेकिन इसमें अधिक मैनुअल काम करना पड़ता है:
\n\ndependencies {\n implementation("com.google.code.gson:gson:2.10.1")\n}\n\n\nप्रोजेक्ट सिंक करने के बाद कोड लिखा जा सकता है।
\n\n2. kotlinx.serialization के साथ JSON पार्सिंग
\n\nयह तरीका सबसे "Kotlin-शैली" है। आप data-क्लासेस घोषित करते हैं और @Serializable एनोटेशन जोड़ते हैं। लाइब्रेरी खुद पार्सिंग के लिए कोड जनरेट करेगी।
2.1. सरल उदाहरण: उपयोगकर्ता डेटा
\n\nमान लीजिए हमारे पास JSON स्ट्रिंग है:
\n\n{\n "name": "अन्ना",\n "age": 25,\n "email": "anna@example.com"\n}\n\n\nमॉडल बनाएँ:
\n\nimport 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 {\n "name": "अन्ना",\n "age": 25,\n "email": "anna@example.com"\n }\n """.trimIndent()\n\n val user = Json.decodeFromString<User>(jsonString)\n println("नाम: ${user.name}, उम्र: ${user.age}")\n}\n\n\nजैसा कि आप देख सकते हैं, कोई मैनुअल मैपिंग नहीं—सब कुछ ऑटोमैटिक है।
\n\n2.2. लिस्ट और नेस्टेड ऑब्जेक्ट के साथ काम करना
\n\nअसली API अक्सर ऐरे रिटर्न करते हैं। address फ़ील्ड जोड़ें:
@Serializable\ndata class Address(\n val city: String,\n val street: String\n)\n\n@Serializable\ndata class UserWithAddress(\n val name: String,\n val age: Int,\n val address: Address\n)\n\nfun main() {\n val jsonArray = """\n [\n {"name": "इवान", "age": 30, "address": {"city": "मॉस्को", "street": "टावर्सकाया"}},\n {"name": "मारिया", "age": 22, "address": {"city": "सेंट पीटर्सबर्ग", "street": "नेव्स्की"}}\n ]\n """.trimIndent()\n\n val users = Json.decodeFromString<List<UserWithAddress>>(jsonArray)\n users.forEach { println("${it.name} ${it.address.city} में रहता है") }\n}\n\n\nध्यान दें: लिस्ट के साथ काम करने के लिए generic List<UserWithAddress> का उपयोग किया जाता है।
3. Gson के साथ JSON पार्सिंग
\n\nGson एक क्लासिक Java लाइब्रेरी है। यह Kotlin में भी बढ़िया काम करती है, लेकिन थोड़ा अधिक कोड चाहिए।
\n\n3.1. बेसिक पार्सिंग
\n\nimport com.google.gson.Gson\n\ndata class User(val name: String, val age: Int, val email: String)\n\nfun main() {\n val jsonString = """{"name": "राहुल", "age": 28, "email": "rahul@example.com"}"""\n val gson = Gson()\n val user = gson.fromJson(jsonString, User::class.java)\n println("नाम: ${user.name}, उम्र: ${user.age}")\n}\n\n\nGson में fromJson() मेथड का उपयोग होता है, जिसमें आप JSON स्ट्रिंग और क्लास टाइप पास करते हैं।
4. Kotlin में JSON सीरियलाइज़ेशन
\n\nसीरियलाइज़ेशन का मतलब है Kotlin ऑब्जेक्ट को JSON स्ट्रिंग में बदलना।
\n\n4.1. kotlinx.serialization के साथ
\n\nval user = User("प्रिया", 24, "priya@example.com")\nval jsonString = Json.encodeToString(user)\nprintln(jsonString)\n\n\n4.2. Gson के साथ
\n\nval user = User("प्रिया", 24, "priya@example.com")\nval gson = Gson()\nval jsonString = gson.toJson(user)\nprintln(jsonString)\n\n\nनिष्कर्ष
\n\nइस लेख में हमने Kotlin में JSON पार्सिंग और सीरियलाइज़ेशन के दो मुख्य तरीके सीखे। kotlinx.serialization Kotlin-नेटिव और टाइप-सेफ है, जबकि Gson पुराने प्रोजेक्ट्स के लिए बेहतर हो सकता है। दोनों ही शक्तिशाली हैं। अब आप अपने Kotlin प्रोजेक्ट में JSON डेटा को आसानी से हैंडल कर सकते हैं!