使用Retrofit和GSON将复杂JSON映射为Java对象的正确方法

时间:2016-09-05 22:54:10

标签: java android generics gson retrofit2

如果我从REST API获取的JSON对象具有以下结构:

{

"IsError":false,

"Result":{ "key1":"value", "key2":"value", ... }

}

是否应该组成两个不同的Java类(IsError和Result),或者只包含两个,作为Call<>中的预期对象?

2016年10月6日更新:

正确使用Retrofit2询问in a new question

1 个答案:

答案 0 :(得分:1)

如果您的所有服务都要响应该结构,那么我将实现一个包含IsErrorResult的通用类:

public class Response<T> {
    private boolean IsError;
    private T Result;

    // getters
}

然后,对于每项服务,您必须使用相应的类,例如Response<MyClass1>Response<MyClass2>等作为Call<>中的预期对象。