Kotlin में JSON के साथ काम करना: पार्सिंग और सीरियलाइज़ेशन शुरुआती गाइड

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

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

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

परिचय: Kotlin को JSON के साथ काम करना क्यों सीखें?

\n\n

JSON (JavaScript Object Notation) एक हल्का डेटा एक्सचेंज फ़ॉर्मेट है जो आधुनिक वेब एप्लिकेशन और API का मानक बन गया है। अगर आप Kotlin में कोड लिख रहे हैं, चाहे वह Android ऐप हो या सर्वर-साइड, तो देर-सबेर आपको सर्वर से JSON रिस्पॉन्स पार्स करना होगा या अपने ऑब्जेक्ट को JSON में सीरियलाइज़ करना होगा।

\n\n

Kotlin एक आधुनिक भाषा है जो JVM पर चलती है और Java के साथ पूरी तरह संगत है। लेकिन Kotlin के पास JSON के साथ काम करने के लिए अपने शक्तिशाली टूल्स हैं जो कोड को अधिक संक्षिप्त और सुरक्षित बनाते हैं। इस लेख में हम दो सबसे लोकप्रिय तरीकों को समझेंगे: आधिकारिक लाइब्रेरी kotlinx.serialization और समय-परीक्षित Gson।

\n\n

यह लेख शुरुआती लोगों के लिए है। हम एक साधारण स्ट्रिंग पार्स करने से शुरू करेंगे, फिर जटिल नेस्टेड स्ट्रक्चर बनाएंगे, और अंत में सीरियलाइज़ेशन को कवर करेंगे—अपने ऑब्जेक्ट को वापस JSON में बदलना।

\n\n

1. प्रोजेक्ट तैयार करना: डिपेंडेंसी और इम्पोर्ट्स

\n\n

कोड लिखने से पहले, लाइब्रेरीज़ जोड़नी होंगी। हम दो विकल्प देखेंगे।

\n\n

1.1. kotlinx.serialization इंस्टॉल करना

\n\n

यह JetBrains का आधिकारिक समाधान है। build.gradle.kts फ़ाइल में जोड़ें:

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

1.2. Gson इंस्टॉल करना

\n\n

Gson Google की लाइब्रेरी है। यह सेटअप में आसान है लेकिन इसमें अधिक मैनुअल काम करना पड़ता है:

\n\n
dependencies {\n    implementation("com.google.code.gson:gson:2.10.1")\n}\n
\n\n

प्रोजेक्ट सिंक करने के बाद कोड लिखा जा सकता है।

\n\n

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

\n\n

यह तरीका सबसे "Kotlin-शैली" है। आप data-क्लासेस घोषित करते हैं और @Serializable एनोटेशन जोड़ते हैं। लाइब्रेरी खुद पार्सिंग के लिए कोड जनरेट करेगी।

\n\n

2.1. सरल उदाहरण: उपयोगकर्ता डेटा

\n\n

मान लीजिए हमारे पास JSON स्ट्रिंग है:

\n\n
{\n    "name": "अन्ना",\n    "age": 25,\n    "email": "anna@example.com"\n}\n
\n\n

मॉडल बनाएँ:

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

2.2. लिस्ट और नेस्टेड ऑब्जेक्ट के साथ काम करना

\n\n

असली API अक्सर ऐरे रिटर्न करते हैं। address फ़ील्ड जोड़ें:

\n\n
@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> का उपयोग किया जाता है।

\n\n

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

\n\n

Gson एक क्लासिक Java लाइब्रेरी है। यह Kotlin में भी बढ़िया काम करती है, लेकिन थोड़ा अधिक कोड चाहिए।

\n\n

3.1. बेसिक पार्सिंग

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

Gson में fromJson() मेथड का उपयोग होता है, जिसमें आप JSON स्ट्रिंग और क्लास टाइप पास करते हैं।

\n\n

4. Kotlin में JSON सीरियलाइज़ेशन

\n\n

सीरियलाइज़ेशन का मतलब है Kotlin ऑब्जेक्ट को JSON स्ट्रिंग में बदलना।

\n\n

4.1. kotlinx.serialization के साथ

\n\n
val user = User("प्रिया", 24, "priya@example.com")\nval jsonString = Json.encodeToString(user)\nprintln(jsonString)\n
\n\n

4.2. Gson के साथ

\n\n
val 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 डेटा को आसानी से हैंडल कर सकते हैं!

ब्लॉग

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