Kotlin में JSON प्रसंस्करण: पूर्ण गाइड
JSON (JavaScript Object Notation) वेब डेवलपमेंट, मोबाइल ऐप्स और माइक्रोसर्विसेज में डेटा आदान-प्रदान के सबसे लोकप्रिय प्रारूपों में से एक बना हुआ है। Kotlin, JVM, Android और मल्टीप्लेटफ़ॉर्म प्रोजेक्ट्स के लिए एक आधुनिक भाषा होने के नाते, JSON के साथ काम करने के लिए कई शक्तिशाली उपकरण प्रदान करता है। इस लेख में, हम मुख्य लाइब्रेरीज़, उनकी क्षमताओं और सर्वोत्तम प्रथाओं पर विस्तार से चर्चा करेंगे।
Kotlin में JSON के लिए लाइब्रेरी की आवश्यकता क्यों है?
हालाँकि Kotlin JVM पर काम करता है और Java लाइब्रेरीज़ का उपयोग कर सकता है, मूल Kotlin समाधान (जैसे kotlinx.serialization) प्रदान करते हैं:
- कंपाइलेशन चरण पर टाइप सुरक्षा
- data-क्लास और sealed-क्लास के लिए समर्थन
- मल्टीप्लेटफ़ॉर्म क्षमता (KMP)
- न्यूनतम boilerplate कोड
Kotlin में JSON के साथ काम करने के लिए मुख्य लाइब्रेरीज़
1. kotlinx.serialization (अनुशंसित)
यह JetBrains की आधिकारिक लाइब्रेरी है, जो Kotlin इकोसिस्टम में निर्मित है। यह मल्टीप्लेटफ़ॉर्म का समर्थन करती है और इसे रिफ्लेक्शन की आवश्यकता नहीं है।
कनेक्शन (Gradle):
plugins { kotlin("jvm") version "1.9.22" kotlin("plugin.serialization") version "1.9.22"}
dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")}JSON पार्सिंग का उदाहरण:
import kotlinx.serialization.*import kotlinx.serialization.json.*
@Serializabledata class User( val id: Int, val name: String, val email: String, @SerialName("is_active") val isActive: Boolean = false)
fun main() { val jsonString = """ { "id": 1, "name": "इवान पेत्रोव", "email": "ivan@example.com", "is_active": true } """.trimIndent()
val user = Json.decodeFromString<User>(jsonString) println("उपयोगकर्ता: ${user.name}, सक्रिय: ${user.isActive}")
// वापस JSON में सीरियलाइज़ेशन val jsonOutput = Json.encodeToString(user) println(jsonOutput)}2. Gson (Google से)
लोकप्रिय Java लाइब्रेरी जो आसानी से Kotlin के अनुकूल हो जाती है। बिना मल्टीप्लेटफ़ॉर्म क्षमता वाले सरल प्रोजेक्ट्स के लिए उपयुक्त।
उदाहरण:
import com.google.gson.Gsonimport com.google.gson.annotations.SerializedName
data class Product( @SerializedName("product_id") val id: Int, val title: String, val price: Double)
fun main() { val gson = Gson() val json = """{"product_id": 101, "title": "लैपटॉप", "price": 79999.99}""" val product = gson.fromJson(json, Product::class.java) println("उत्पाद: ${product.title}, मूल्य: ${product.price} रुपये") // वापसी सीरियलाइज़ेशन val jsonOut = gson.toJson(product) println(jsonOut)}3. Moshi (Square से)
Gson का एक आधुनिक विकल्प जिसमें बेहतर प्रदर्शन और Kotlin कोड-जनरेशन के लिए समर्थन है।
उदाहरण:
import com.squareup.moshi.Moshiimport com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactoryimport com.squareup.moshi.adapters.PolymorphicJsonAdapterFactory
data class Book( val isbn: String, val author: String, val year: Int)
fun main() { val moshi = Moshi.Builder() .add(KotlinJsonAdapterFactory()) .build() val adapter = moshi.adapter(Book::class.java) val json = """{"isbn": "978-5-17-123456-7", "author": "लियो टॉल्स्टॉय", "year": 1877}""" val book = adapter.fromJson(json) println("पुस्तक: ${book?.author} - ISBN: ${book?.isbn}")}लाइब्रेरीज़ की तुलना
- kotlinx.serialization — नए प्रोजेक्ट्स, मल्टीप्लेटफ़ॉर्म और Android के लिए सबसे अच्छा विकल्प। इसके लिए कंपाइलर प्लगइन की आवश्यकता है।
- Gson — उपयोग में आसान, तेज़ प्रोटोटाइप के लिए उपयुक्त