Kotlin में JSON के साथ कार्य: व्यावहारिक रूप से पार्सिंग और सीरियलाइज़ेशन

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

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

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

परिचय: क्यों JSON आधुनिक Kotlin डेवलपर की नींव है

\n

JSON (JavaScript Object Notation) सर्वर और क्लाइंट के बीच डेटा आदान-प्रदान के लिए वास्तविक मानक बना हुआ है, चाहे वह Android पर मोबाइल एप्लिकेशन हो या Ktor पर बैकएंड। Kotlin इकोसिस्टम में, भाषा की सख्त टाइपिंग और शक्तिशाली सीरियलाइज़ेशन लाइब्रेरीज़ के कारण JSON के साथ कार्य करना विशेष रूप से सुविधाजनक है। इस लेख में, हम दो मुख्य दृष्टिकोणों पर चर्चा करेंगे: आधिकारिक kotlinx.serialization लाइब्रेरी और लोकप्रिय Gson का उपयोग। आप सीखेंगे कि जटिल संरचनाओं को कैसे पार्स करें, ऑब्जेक्ट्स को सीरियलाइज़ करें और व्यावहारिक रूप से अपवादों को कैसे संभालें।

\n\n

प्रोजेक्ट तैयार करना और निर्भरताएँ जोड़ना

\n

कोड लिखने से पहले, build.gradle.kts फ़ाइल (Gradle के लिए) में लाइब्रेरीज़ जोड़ना आवश्यक है। दोनों विकल्पों पर विचार करें।

\n\n

विकल्प 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
\n\n

विकल्प 2: Gson (Java प्रोजेक्ट्स के साथ संगतता के लिए)

\n
    \n
  • dependencies में जोड़ें: implementation("com.google.code.gson:gson:2.10.1")
  • \n
\n\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\n

Kotlin में JSON पार्सिंग: सरल से जटिल तक

\n

पार्सिंग (डिसीरियलाइज़ेशन) JSON स्ट्रिंग को Kotlin ऑब्जेक्ट में बदलना है। आइए उपयोगकर्ता डेटा के उदाहरण पर विचार करें।

\n\n

डेटा का उदाहरण

\n
{\n  "id": 123,\n  "name": "अन्ना",\n  "email": "anna@example.com",\n  "active": true\n}
\n\n

Data Class बनाना

\n

दोनों लाइब्रेरीज़ के लिए एक ही क्लास का उपयोग किया जाता है। महत्वपूर्ण: kotlinx.serialization के लिए @Serializable एनोटेशन जोड़ना आवश्यक है।

\n
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\n

kotlinx.serialization के साथ पार्सिंग

\n
import 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\n

Gson के साथ पार्सिंग

\n
import 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\n

kotlinx.serialization के साथ सीरियलाइज़ेशन

\n
import 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\n

Gson के साथ सीरियलाइज़ेशन

\n
fun serializeWithGson(user: User): String {\n    val gson = GsonBuilder().setPrettyPrinting().create()\n    return gson.toJson(user)\n}<                

ब्लॉग

पुस्तक अनुशंसाएँ