परिचय: क्यों JSON आधुनिक Kotlin डेवलपर की नींव है
\nJSON (JavaScript Object Notation) सर्वर और क्लाइंट के बीच डेटा आदान-प्रदान के लिए वास्तविक मानक बना हुआ है, चाहे वह Android पर मोबाइल एप्लिकेशन हो या Ktor पर बैकएंड। Kotlin इकोसिस्टम में, भाषा की सख्त टाइपिंग और शक्तिशाली सीरियलाइज़ेशन लाइब्रेरीज़ के कारण JSON के साथ कार्य करना विशेष रूप से सुविधाजनक है। इस लेख में, हम दो मुख्य दृष्टिकोणों पर चर्चा करेंगे: आधिकारिक kotlinx.serialization लाइब्रेरी और लोकप्रिय Gson का उपयोग। आप सीखेंगे कि जटिल संरचनाओं को कैसे पार्स करें, ऑब्जेक्ट्स को सीरियलाइज़ करें और व्यावहारिक रूप से अपवादों को कैसे संभालें।
प्रोजेक्ट तैयार करना और निर्भरताएँ जोड़ना
\nकोड लिखने से पहले, build.gradle.kts फ़ाइल (Gradle के लिए) में लाइब्रेरीज़ जोड़ना आवश्यक है। दोनों विकल्पों पर विचार करें।
विकल्प 1: kotlinx.serialization (अनुशंसित)
\n- \n
pluginsमें प्लगइन जोड़ें:kotlin("plugin.serialization") version "1.9.22"\n dependenciesमें निर्दिष्ट करें:implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")\n
विकल्प 2: Gson (Java प्रोजेक्ट्स के साथ संगतता के लिए)
\n- \n
dependenciesमें जोड़ें:implementation("com.google.code.gson:gson:2.10.1")\n
// build.gradle.kts — kotlinx.serialization के लिए पूर्ण उदाहरण\nplugins {\n kotlin("jvm") version "1.9.22"\n kotlin("plugin.serialization") version "1.9.22"\n}\n\ndependencies {\n implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")\n}\n\nKotlin में JSON पार्सिंग: सरल से जटिल तक
\nपार्सिंग (डिसीरियलाइज़ेशन) JSON स्ट्रिंग को Kotlin ऑब्जेक्ट में बदलना है। आइए उपयोगकर्ता डेटा के उदाहरण पर विचार करें।
\n\nडेटा का उदाहरण
\n{\n "id": 123,\n "name": "अन्ना",\n "email": "anna@example.com",\n "active": true\n}\n\nData Class बनाना
\nदोनों लाइब्रेरीज़ के लिए एक ही क्लास का उपयोग किया जाता है। महत्वपूर्ण: kotlinx.serialization के लिए @Serializable एनोटेशन जोड़ना आवश्यक है।
import kotlinx.serialization.Serializable\n\n@Serializable\ndata class User(\n val id: Int,\n val name: String,\n val email: String,\n val active: Boolean\n)\n\nkotlinx.serialization के साथ पार्सिंग
\nimport kotlinx.serialization.json.Json\n\nfun parseWithKotlinx(jsonString: String): User {\n val json = Json { ignoreUnknownKeys = true } // अज्ञात फ़ील्ड को अनदेखा करें\n return json.decodeFromString<User>(jsonString)\n}\n\n// उपयोग:\nfun main() {\n val json = """{"id":123,"name":"अन्ना","email":"anna@example.com","active":true}"""\n val user = parseWithKotlinx(json)\n println(user.name) // अन्ना\n}\n\nGson के साथ पार्सिंग
\nimport com.google.gson.Gson\n\nfun parseWithGson(jsonString: String): User {\n val gson = Gson()\n return gson.fromJson(jsonString, User::class.java)\n}\n\n// उपयोग:\nfun main() {\n val json = """{"id":123,"name":"अन्ना","email":"anna@example.com","active":true}"""\n val user = parseWithGson(json)\n println(user.email) // anna@example.com\n}\n\nसीरियलाइज़ेशन: ऑब्जेक्ट को JSON में बदलना
\nविपरीत प्रक्रिया — ऑब्जेक्ट से JSON स्ट्रिंग बनाना — सर्वर पर डेटा भेजने के लिए भी उतनी ही महत्वपूर्ण है।
\n\nkotlinx.serialization के साथ सीरियलाइज़ेशन
\nimport kotlinx.serialization.encodeToString\n\nfun serializeWithKotlinx(user: User): String {\n val json = Json { prettyPrint = true }\n return json.encodeToString(user)\n}\n\n// परिणाम:\n// {\n// "id": 123,\n// "name": "अन्ना",\n// "email": "anna@example.com",\n// "active": true\n// }\n\nGson के साथ सीरियलाइज़ेशन
\nfun serializeWithGson(user: User): String {\n val gson = GsonBuilder().setPrettyPrinting().create()\n return gson.toJson(user)\n}<