Ich verwende die effiziente Netzwerkbibliothek für die Nachrüstung, kann jedoch Dynamic JSON nicht verarbeiten, das ein einzelnes Präfix enthält, responseMessage
das sich object
zufällig responseMessage
ändert. In einigen Fällen ändert sich dasselbe Präfix ( ) in String (dynamisch).
Json-Format Objekt der AntwortMessage:
{
"applicationType":"1",
"responseMessage":{
"surname":"Jhon",
"forename":" taylor",
"dob":"17081990",
"refNo":"3394909238490F",
"result":"Received"
}
}
responseMessage
Das Json-Format ändert sich dynamisch in den Typ string:
{
"applicationType":"4",
"responseMessage":"Success"
}
Mein Problem ist JSON
, dass ich, da die Nachrüstung über eine integrierte Analyse verfügt, pro Anfrage ein einzelnes POJO zuweisen muss! Leider basiert die REST-API auf dynamischen JSON
Antworten. Das Präfix ändert sich sowohl bei erfolgreichen (...) als auch bei fehlgeschlagenen (...) Methoden zufällig von Zeichenfolge zu Objekt !
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
}
Im obigen Code ist das POJO TrackerRefResponse.java-Präfix responseMessage auf einen String oder ein Objekt vom Typ responseMessage festgelegt, sodass wir das POJO mit der Ref-Variablen mit demselben Namen erstellen können (Java-Grundlagen :)). Daher suche ich nach derselben Lösung für Dynamic JSON
in Retrofit. Ich weiß, dass dies bei normalen http-Clients mit asynchroner Aufgabe sehr einfach ist, aber es ist nicht die beste Vorgehensweise beim JSON
Parsen von REST-Api ! Betrachtet man die Leistung Benchmarks immer Volley oder Retrofit ist die beste Wahl, aber ich bin nicht in der Lage, dynamisch zu handhaben JSON
!
Mögliche Lösung, die ich kenne
Verwenden Sie die alte Asyc-Task beim Parsen des http-Clients. :(
Versuchen Sie, den RESTapi-Backend-Entwickler zu überzeugen.
Benutzerdefinierten Retrofit-Client erstellen :)