我正在使用改造高效的网络库,但是无法处理包含单个前缀的Dynamic JSON,该前缀  responseMessage会object随机responseMessage更改,在某些情况下(动态),相同的前缀()会更改为String。
Json格式的responseMessage对象:
{
   "applicationType":"1",
   "responseMessage":{
      "surname":"Jhon",
      "forename":" taylor",
      "dob":"17081990",
      "refNo":"3394909238490F",
      "result":"Received"
   }
}
responseMessage  Json格式会动态更改为字符串类型:
 {
       "applicationType":"4",
       "responseMessage":"Success"          
 }
我的问题是,因为改造具有内置的JSON解析功能,所以我必须为每个请求分配单个POJO!但不幸的是,REST-API是基于动态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被设置为string或类型为responseMessage的对象,因此我们可以使用具有相同名称的ref变量创建POJO(java basics :)),因此我正在为JSONRetrofit中的动态寻找相同的解决方案。我知道这在具有异步任务的普通http客户端中是非常容易的工作,但这不是REST-ApiJSON解析中的最佳实践!始终看性能基准排球或翻新是最好的选择,但是我无法动态处理JSON!  
我知道可能的解决方案
- 将旧的asyc任务与http客户端解析一起使用。:( 
- 尝试说服RESTapi后端开发人员。 
- 创建自定义的改造客户端:)