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;
firstName
与 first_name
会有类似的问题。您也许可以使用 GsonBuilder.setFieldNamingPolicy
to avoid annotating every field. See LOWER_CASE_WITH_UNDERSCORES
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;
firstName
与 first_name
会有类似的问题。您也许可以使用 GsonBuilder.setFieldNamingPolicy
to avoid annotating every field. See LOWER_CASE_WITH_UNDERSCORES