我有一个模型,它会收到一个响应,其中当我有选项值和后续值时,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
的类型,然后按照以下方式提取数据。
希望它能解决你的问题。如果需要进一步的代码,请告诉我。