我有一个JSON:
[{
"id": 100500,
"products": [...array of JSON Objects...],
"areas": [...array of JSON Objects...],
...(30 more fields)
},
{...},
....]
和班级商店:
public class Store {
public int id;
public List<Product> products;
public List<Area> areas;
public ...(30 more fields)
}
好的,它运作正常。但服务器可以响应下一个json:
[{
"id": 100500,
"products": [1, 2, 3, 4...], << int array
"areas": [5, 6, 7, 8...], << int array
...(30 more fields)
},
{...},
....]
如您所见,“产品” - 是ID数组,但不是真实对象“Product”的数组。我如何正确解析这个json到类Store(即从数组中创建带有id的Products列表)?
答案 0 :(得分:0)
您可能需要破解此服务器端设计决策。假设您无法预测服务器将返回的数据类型:
我要做的是使用class StoreB
列表创建Integer
。
public class StoreB {
public int id;
public List<Integer> products;
public List<Integer> areas;
public ...(30 more fields)
}
现在您可以尝试将JSON解析为原始的Store
类。将其包装在GSON解析异常中,以便在失败时捕获它,并尝试反序列化为StoreB
。