रेट्रोफिट में एक कस्टम Gson कनवर्टर के साथ नेस्टेड JSON निकालना
कई एपीआई एक सामान्य JSON संरचना के साथ प्रतिक्रियाएं प्रदान करते हैं जहां एक रूट ऑब्जेक्ट एक नेस्टेड को शामिल करता है वांछित डेटा युक्त "सामग्री" फ़ील्ड। हालाँकि, अधिकांश पीओजेओ केवल "सामग्री" फ़ील्ड के भीतर डेटा को मॉडल करते हैं, जिससे रेट्रोफिट प्रकार एडाप्टर उचित ऑब्जेक्ट को निकालने और वापस करने में असमर्थ हो जाता है। सामग्री" फ़ील्ड और एम्बेडेड ऑब्जेक्ट वापस करें। यहां बताया गया है कि कैसे:
कस्टम डिसेरिएलाइज़र:वांछित POJO प्रकार के लिए JsonDeserializer इंटरफ़ेस को लागू करने वाला एक क्लास बनाएं। उदाहरण के लिए, एक "कंटेंट" POJO के लिए:
क्लास कंटेंटडिसेरिएलाइज़र JsonDeserializer
class ContentDeserializer implements JsonDeserializerGson कॉन्फ़िगरेशन:{ @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); } }
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