替换"" (空字符串)" -1"在JSON中仅用于整数

时间:2015-07-08 14:12:14

标签: java android json gson

在我当前的android项目中,API提供引号中的每个JSON值:

{
  "id":"1234",
  "title":"Matrix",
  "subTitle":"",
  "year":"1999",
  "rating":"9"
}

我可以成功地将它映射到我的模型(显然整数被GSON识别?)。

int id;
String title;
String subtitle;
int year;
int rating;

当电影没有评级时,会出现问题。在这种情况下,API返回
"rating":""
GSON无法将其映射到int。

我如何说服GSON将""替换为-1仅用于整数,因为我想保留空字符串,例如对于不存在的字幕?

TypeAdapter似乎是我需要的,但它不会取代每个空字符串(甚至是映射到字符串的字符串)?

1 个答案:

答案 0 :(得分:0)

我会像这样进行建模:

int id;
String title;
String subtitle;
// Here you have to be sure that year is always going to be a valid int
int year;
private String rating;

public int getRating() {
    return TextUtils.isEmpty(rating) ? -1 : Integer.parseInt(rating);
}

当然,如果您的模型也被发送回您的服务器,您需要相应地进行调整。