Moshi Kotlin: पूर्ण गाइड उदाहरणों के साथ

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

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

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

Moshi Kotlin: पूर्ण गाइड उदाहरणों के साथ

1. Moshi क्या है और इसकी ज़रूरत क्यों?

Moshi, Square कंपनी द्वारा विकसित एक आधुनिक JSON सीरियलाइज़ेशन और डी-सीरियलाइज़ेशन लाइब्रेरी है। यह Kotlin और Java दोनों में लिखी गई है, लेकिन मुख्य रूप से Kotlin डेवलपर्स के लिए डिज़ाइन की गई है। Moshi, ऑब्जेक्ट्स को JSON में और JSON से ऑब्जेक्ट्स में बदलने का एक शक्तिशाली, सुरक्षित और तेज़ तरीका प्रदान करता है, जिसमें न्यूनतम बॉयलरप्लेट कोड की आवश्यकता होती है।

Moshi की ज़रूरत क्यों है? आधुनिक ऐप डेवलपमेंट में JSON के साथ काम करना एक अनिवार्य हिस्सा है: REST API से डेटा का आदान-प्रदान, कॉन्फ़िगरेशन स्टोर करना, कंपोनेंट्स के बीच मैसेज भेजना। Moshi कई मुख्य समस्याओं का समाधान करता है: मैन्युअली पार्सर लिखे बिना Kotlin क्लासेज़ का JSON में (और इसके विपरीत) ऑटोमैटिक रूपांतरण; सख्त टाइपिंग जो रनटाइम एरर को रोकती है; इम्यूटेबल ऑब्जेक्ट्स (data class) और sealed क्लासेज़ का सपोर्ट; एडॉप्टर के ज़रिए कस्टमाइज़ेशन की सुविधा। Gson या Jackson की तुलना में, Moshi एक साफ़ API, Kotlin के साथ बेहतर इंटीग्रेशन (जैसे null-सुरक्षा और डिफ़ॉल्ट वैल्यू का सपोर्ट) और छोटा लाइब्रेरी साइज़ प्रदान करता है।

Moshi उन प्रोजेक्ट्स में विशेष रूप से उपयोगी है जहाँ परफॉरमेंस और टाइप सेफ्टी महत्वपूर्ण है। इसका उपयोग Android डेवलपमेंट (Retrofit और OkHttp के साथ), Ktor पर सर्वर-साइड एप्लिकेशन, और किसी भी Kotlin प्रोजेक्ट में JSON के साथ काम करने के लिए किया जाता है। लाइब्रेरी रिफ्लेक्शन (moshi-kotlin मॉड्यूल के ज़रिए) और कोड जनरेशन (moshi-kotlin-codegen के ज़रिए) दोनों को सपोर्ट करती है, जिससे आप सुविधा और परफॉरमेंस के बीच चुनाव कर सकते हैं।

2. इंस्टॉलेशन

Moshi Maven Central के ज़रिए उपलब्ध है। इंस्टॉल करने के लिए, build.gradle.kts (Gradle) या pom.xml (Maven) फ़ाइल में डिपेंडेंसी जोड़ें।

Gradle (Kotlin DSL)

// build.gradle.kts
dependencies {
    // मुख्य लाइब्रेरी
    implementation("com.squareup.moshi:moshi:1.15.1")
    
    // Kotlin के लिए मॉड्यूल (रिफ्लेक्शन)
    implementation("com.squareup.moshi:moshi-kotlin:1.15.1")
    
    // कोड जनरेशन (वैकल्पिक, परफॉरमेंस बढ़ाने के लिए)
    ksp("com.squareup.moshi:moshi-kotlin-codegen:1.15.1")
    // या kapt("com.squareup.moshi:moshi-kotlin-codegen:1.15.1")
}

Gradle (Groovy)

// build.gradle
dependencies {
    implementation 'com.squareup.moshi:moshi:1.15.1'
    implementation 'com.squareup.moshi:moshi-kotlin:1.15.1'
    ksp 'com.squareup.moshi:moshi-kotlin-codegen:1.15.1'
}

Maven

<dependency>
    <groupId>com.squareup.moshi</groupId>
    <artifactId>moshi</artifactId>
    <version>1.15.1</version>
</dependency>
<dependency>
    <groupId>com.squareup.moshi</groupId>
    <artifactId>moshi-kotlin</artifactId>
    <version>1.15.1</version>
</dependency>

महत्वपूर्ण: यदि आप कोड जनरेशन का उपयोग कर रहे हैं, तो KSP (Kotlin Symbol Processing) या KAPT प्लगइन को कनेक्ट करना न भूलें। KSP के लिए plugins में जोड़ें:

plugins {
    id("com.google.devtools.ksp") version "1.9.22-1.0.17"
}

3. त्वरित शुरुआत

एक न्यूनतम कार्यशील उदाहरण बेसिक सीरियलाइज़ेशन और डी-सीरियलाइज़ेशन को दर्शाता है।

import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

// 1. data class परिभाषित करें
data class User(
    val name: String,
    val age: Int,
    val email: String?
)

fun main() {
    // 2. Kotlin के लिए फ़ैक्टरी के साथ Moshi इंस्टेंस बनाएँ
    val moshi = Mosh                    

अनुशंसाएँ