Gson填充麻烦

Gson populating trouble

VkUsersResponce qwe = gsonBuilder.create().fromJson("{\"response\":[{\"id\":1,\"first_name\":\"Павел\",\"last_name\":\"Дуров\",\"sex\":2}]}", VkUsersResponce.class);

public class VkUsersResponce {
    @Getter
    @Setter
    private List<VkUser> responce;
}

public class VkUser {
    @Getter
    @Setter
    private int sex;

    @Getter
    @Setter
    private long id;

    @Getter
    @Setter
    private String firstName;

    @Getter
    @Setter
    private String lastName;
}

qwe实际上是null.

您 JSON 字段名称和 java 对象名称必须匹配。

来自您的 JSON -- "response\" 's'.
来自您的对象 - "responce" 和 'c'.

要么将您的字段更改为 "response",要么使用 SerializedName,例如 --

@SerializedName("response")
private List<VkUser> responce;

firstNamefirst_name 会有类似的问题。您也许可以使用 GsonBuilder.setFieldNamingPolicy to avoid annotating every field. See LOWER_CASE_WITH_UNDERSCORES