Güçlendirme verimli ağ kitaplığını kullanıyorum, ancak rastgele olarak responseMessagedeğişen tek bir önek içeren Dinamik JSON'u objectişleyemiyorum, aynı önek ( responseMessage) bazı durumlarda (dinamik olarak) Dize olarak değişir.
Json formatı ResponseMessage nesnesi:
{
"applicationType":"1",
"responseMessage":{
"surname":"Jhon",
"forename":" taylor",
"dob":"17081990",
"refNo":"3394909238490F",
"result":"Received"
}
}
responseMessage Json formatı, tür dizesine dinamik olarak değişir:
{
"applicationType":"4",
"responseMessage":"Success"
}
Benim sorunum, güçlendirme yerleşik JSONayrıştırmaya sahip olduğundan, istek başına tek POJO atamalıyım! ancak REST-API maalesef dinamik JSONyanıtlar üzerine inşa edilmiştir . Önek hem rastgele nesneye dizesinden değişecek başarı (...) ve başarısızlık (...) yöntemlerine!
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
}
Yukarıdaki kodda POJO TrackerRefResponse.java önek responseMessage, responseMessage türünde dizeye veya nesneye ayarlanmıştır, böylece POJO'yu aynı ada sahip ref değişkeniyle (java basics :)) oluşturabiliriz, bu yüzden JSONRetrofit'te dinamik için aynı çözümü arıyorum . Zaman uyumsuz görevli normal http istemcilerinde bunun çok kolay bir iş olduğunu biliyorum, ancak REST-Api JSONçözümlemesindeki en iyi uygulama bu değil ! performans Kıyaslamalarına bakmak her zaman Volley veya Retrofit en iyi seçimdir, ancak dinamikle başa çıkmada başarısız oldum JSON!
Bildiğim olası çözüm
Http istemcisi ayrıştırması ile eski asyc görevini kullanın. :(
RESTapi arka uç geliştiricisini ikna etmeye çalışın.
Özel Retrofit istemcisi oluşturun :)