在Retrofit中,如何自动反序列化json-root属性到对象?

时间:2019-05-12 17:47:22

标签: java gson retrofit

我正在尝试将json-response的根映射到Java对象。这是属性列表。

通常,使用@SerializedName可以轻松完成此操作,但是在我的情况下,由于我的json响应看起来像这样,所以我无法引用“ Person”对象:

{
    "name": "Peter",
    "height": 10,
    "id": 2,
    "is_default": true
}

我知道我可以使用@SerializedName手动检索每个属性,然后创建自己的对象,如下所示:

public class PersonResponse {

    @SerializedName("name")
    String name;

    @SerializedName("height")
    int height;

    @SerializedName("id")
    int id;

    @SerializedName("is_default")
    boolean is_default;

    public Person getPerson() {
        return new Person(name, height,id,is_default);
    }
}

但是还有另一种方法可以自动执行此操作吗?

编辑以进行澄清:

如果我具有以下JSON:

{
  "person": {
    "name": "Peter",
    "height": 10,
    "id": 2,
    "is_default": true
  }
}

我可以在响应中简单地做以下事情:

@SerializedName("person")
Person person;

它将自动将所有根属性映射到我的Person类中的字段。但是,由于JSON的根不是Person对象,而仅仅是person的属性,我如何告诉它进行改型?

0 个答案:

没有答案