मैं रेट्रोफिट कुशल नेटवर्किंग लाइब्रेरी का उपयोग कर रहा हूं, लेकिन मैं गतिशील JSON को संभालने में असमर्थ हूं जिसमें एकल उपसर्ग है responseMessage
जो object
यादृच्छिक रूप से बदलता है , responseMessage
कुछ मामलों में (गतिशील रूप से) एक ही उपसर्ग ( ) स्ट्रिंग में बदलता है।
Json प्रारूप प्रतिक्रिया की वस्तु
{
"applicationType":"1",
"responseMessage":{
"surname":"Jhon",
"forename":" taylor",
"dob":"17081990",
"refNo":"3394909238490F",
"result":"Received"
}
}
responseMessage
JSON प्रारूप गतिशील रूप से स्ट्रिंग में टाइप करने के लिए बदलता है:
{
"applicationType":"4",
"responseMessage":"Success"
}
मेरी समस्या तब से है जब रेट्रोफ़िट में बिल्ट-इन JSON
पार्सिंग है, मुझे अनुरोध के अनुसार एकल पीओजेओ आवंटित करना है! लेकिन दुर्भाग्य से एपीआई गतिशील JSON
प्रतिक्रियाओं पर बनाया गया है । उपसर्ग स्ट्रिंग से ऑब्जेक्ट में क्रमिक रूप से सफलता (...) और विफलता (...) विधियों में बदल जाएगा!
void doTrackRef(Map<String, String> paramsref2) {
RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint("http://192.168.100.44/RestDemo").build();
TrackerRefRequest userref = restAdapter.create(TrackerRefRequest.class);
userref.login(paramsref2,
new Callback<TrackerRefResponse>() {
@Override
public void success(
TrackerRefResponse trackdetailresponse,
Response response) {
Toast.makeText(TrackerActivity.this, "Success",
Toast.LENGTH_SHORT).show();
}
@Override
public void failure(RetrofitError retrofitError) {
Toast.makeText(TrackerActivity.this, "No internet",
Toast.LENGTH_SHORT).show();
}
});
}
Pojo:
public class TrackerRefResponse {
private String applicationType;
private String responseMessage; //String type
//private ResponseMessage responseMessage; //Object of type ResponseMessage
//Setters and Getters
}
ऊपर दिए गए कोड में POJO TrackerRefResponse.java उपसर्ग responseMessage स्ट्रिंग या ऑब्जेक्ट प्रकार की responseMessage पर सेट है, इसलिए हम POJO को उसी नाम (जावा मूल बातें :)) के साथ रेफ चर के साथ बना सकते हैं, इसलिए JSON
रेट्रोफिट में गतिशील के लिए एक ही समाधान की तलाश कर रहे हैं । मुझे पता है कि यह async कार्य के साथ सामान्य http क्लाइंट में बहुत आसान काम है, लेकिन यह REST-Api JSON
पार्सिंग में सबसे अच्छा अभ्यास नहीं है ! प्रदर्शन को देखते हुए बेंचमार्क हमेशा वॉली या रेट्रोफिट सबसे अच्छा विकल्प है, लेकिन मैं गतिशील संभाल नहीं रहा हूँ JSON
!
संभव समाधान मुझे पता है
Http क्लाइंट पार्सिंग के साथ पुराने एसाइक कार्य का उपयोग करें। :(
Restapi बैकएंड डेवलपर को मनाने की कोशिश करें।
कस्टम रेट्रोफ़िट क्लाइंट बनाएं :)