我知道已经有很多关于这个话题的问题,但我被困在这里,我敢肯定这是非常愚蠢的事情。
我正在解析一个看起来像这样的 JSON Api(在此处重命名和简化):
{
"merchant": {
"name": "TestCo",
"id": 108
},
"category": [
{
"merchant_id": 108,
"category_name": "Baby Supplies",
"category_id": 57,
},
{
"merchant_id": 108,
"category_name": "Dining",
"category_id": 59,
}
]}
我有一个包装类,定义为:
public class WrapperObject {
public MerchantObject merchant;
public List<CategoryObject> category;}
商家和类别都是它们自己正确定义的类。然后我尝试像这样反序列化:
collectionType = new TypeToken<List<WrapperObject>>() {}.getType();
List<WrapperObject> wrapperObject = new Gson().fromJson(response, collectionType);
这爆炸了,GSON 报告回“这不是 JSON 数组”。
直到上周,当 API 发生变化时,这才完美运行。JSON 的唯一区别是它曾经看起来像这样(注意数据周围的额外包装数组):
[{
"merchant": {
"name": "TestCo",
"id": 108
},
"category": [
{
"merchant_id": 108,
"category_name": "Baby Supplies",
"category_id": 57,
},
{
"merchant_id": 108,
"category_name": "Dining",
"category_id": 59,
}
]}]
如何调整我的代码以解析新的 JSON?注意,我无法控制 JSON。谢谢!