我有一个模型类,当价格类型为"固定"时,它返回对象,当它是"百分比"时,它返回字符串,我不知道该怎么做?



我有一个模型,它会收到一个响应,其中当我有选项值和后续值时,in值中的priceType可以是百分比或固定值。当价格类型为百分比时,响应为Sting,但当价格类型固定时,响应id对象和我收到错误。。

接受响应

JSONObject jsonResponse = new JSONObject(response);
Gson gson = new GsonBuilder().create();
product = gson.fromJson(String.valueOf(jsonResponse), Product.class);

百分比的JSON响应

{
"id": 73,
"option_id": 21,
"price": "7.0000",
"price_type": "percent",
"position": 0,
"created_at": "2019-10-22 04:23:16",
"updated_at": "2019-10-30 04:57:45",
"label": "Red",
"translations": [
{
"id": 73,
"option_value_id": 73,
"locale": "en",
"label": "Red"
}
]
}

Json对固定价格的回应

{
"id": 74,
"option_id": 21,
"price": {
"amount": "5.0000",
"formatted": "$5.00",
"currency": "USD"
},
"price_type": "fixed",
"position": 1,
"created_at": "2019-10-22 04:23:16",
"updated_at": "2019-10-22 04:23:16",
"label": "White",
"translations": [
{
"id": 74,
"option_value_id": 74,
"locale": "en",
"label": "White"
}
]
}

价格可以是class或String,但我不知道如何放入我的模型类中。。

您可以如下声明您的pojo类:--

public class Product<T> {
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOption_id() {
return option_id;
}
public void setOption_id(int option_id) {
this.option_id = option_id;
}

private int id;
private int option_id;
public T getPrice() {
return price;
}
public void setPrice(T price) {
this.price = price;
}
T price;
.............
}

解析响应后,您可以检查T的类型,然后按照以下方式提取数据。

希望它能解决你的问题。如果需要进一步的代码,请告诉我。

相关内容

最新更新