"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > रेट्रोफ़िट में कस्टम Gson कनवर्टर का उपयोग करके नेस्टेड JSON डेटा को कुशलतापूर्वक कैसे निकालें?

रेट्रोफ़िट में कस्टम Gson कनवर्टर का उपयोग करके नेस्टेड JSON डेटा को कुशलतापूर्वक कैसे निकालें?

2024-12-21 को प्रकाशित
ब्राउज़ करें:719

How to Efficiently Extract Nested JSON Data Using a Custom Gson Converter in Retrofit?

रेट्रोफिट में एक कस्टम Gson कनवर्टर के साथ नेस्टेड JSON निकालना

कई एपीआई एक सामान्य JSON संरचना के साथ प्रतिक्रियाएं प्रदान करते हैं जहां एक रूट ऑब्जेक्ट एक नेस्टेड को शामिल करता है वांछित डेटा युक्त "सामग्री" फ़ील्ड। हालाँकि, अधिकांश पीओजेओ केवल "सामग्री" फ़ील्ड के भीतर डेटा को मॉडल करते हैं, जिससे रेट्रोफिट प्रकार एडाप्टर उचित ऑब्जेक्ट को निकालने और वापस करने में असमर्थ हो जाता है। सामग्री" फ़ील्ड और एम्बेडेड ऑब्जेक्ट वापस करें। यहां बताया गया है कि कैसे:

कस्टम डिसेरिएलाइज़र:

वांछित POJO प्रकार के लिए JsonDeserializer इंटरफ़ेस को लागू करने वाला एक क्लास बनाएं। उदाहरण के लिए, एक "कंटेंट" POJO के लिए:

क्लास कंटेंटडिसेरिएलाइज़र JsonDeserializer { लागू करता है @ओवरराइड सार्वजनिक सामग्री deserialize (JsonElement जेई, प्रकार प्रकार, JsonDeserializationContext jdc) JsonParseException फेंकता है { // "सामग्री" तत्व निकालें JsonElement सामग्री = je.getAsJsonObject().get('content'); // नए Gson उदाहरण का उपयोग करके सामग्री को डिसेरिएलाइज़ करें नया Gson() लौटाएं.fromJson(content, content.class); } }

class ContentDeserializer implements JsonDeserializer {
    @Override
    public Content deserialize(JsonElement je, Type type, JsonDeserializationContext jdc)
        throws JsonParseException {
        // Extract the "content" element
        JsonElement content = je.getAsJsonObject().get("content");

        // Deserialize the content using a new Gson instance
        return new Gson().fromJson(content, Content.class);
    }
}
Gson कॉन्फ़िगरेशन:

GsonBuilder इंस्टेंस के साथ कस्टम डिसेरिएलाइज़र पंजीकृत करें:

Gson gson = new GsonBuilder() .registerTypeAdapter(Content.class, new contentDeserializer()) .create();

Gson gson = new GsonBuilder()
    .registerTypeAdapter(Content.class, new ContentDeserializer())
    .create();

रेट्रोफिट इंटीग्रेशन:

अंत में, रेट्रोफिट इंस्टेंस बनाते समय कस्टम Gson कनवर्टर का उपयोग करें:

रेट्रोफिट रेट्रोफिट = नया रेट्रोफ़िट.बिल्डर() .बेसयूआरएल(यूआरएल) .addConverterFactory(GsonConverterFactory.create(gson)) .build();

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(url)
    .addConverterFactory(GsonConverterFactory.create(gson))
    .build();
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3