所以这是我用来解析产品库存的亚马逊JSON响应的代码。
ListInventorySupplyResponse response = client.listInventorySupply(request);
ResponseHeaderMetadata rhmd = response.getResponseHeaderMetadata();
String responseJSON = response.toJSON();
JSONParser parser = new JSONParser();
try {
json = (JSONObject) parser.parse(responseJSON);
它工作了一个星期,然后我今天收到了这个错误。
Unexpected token VALUE(-1) at position 5948.
查看响应JSON。我把它放在JSON验证器(http://jsonlint.com/)
中 jsonlint告诉我,我得到的回答是不正确的json!这是错误 {
"SellerSKU": "zz",
"FNSKU": "B006T5BLTO",
"ASIN": "B006T5BLTO",
"Condition": "NewItem",
"TotalSupplyQuantity": 92,
"InStockSupplyQuantity": 44,
"EarliestAvailability": {
"TimepointType": "DateTime",
"DateTime": 2015-01-13T09: 00: 00Z
},
"SupplyDetail": {
"member": [
]
}
},
{
"SellerSKU": "yyC",
"FNSKU": "B00IHMDJ7Y",
"ASIN": "B00IHMDJ7Y",
"Condition": "NewItem",
"TotalSupplyQuantity": 63,
"InStockSupplyQuantity": 63,
"EarliestAvailability": {
"TimepointType": "Immediately"
},
"SupplyDetail": {
"member": [
]
}
},
Parse error on line 398:
... "DateTime": 2015-01-13T09: 00: 00Z
----------------------^
Expecting '}', ',', ']'
正如您所看到的,由于某些原因,大多数产品都可以立即使用,但其中一个产品不可用,亚马逊向我发送了“日期时间”。但是,他们没有将日期时间放在引号中,使其成为无效的JSON。
是我吗?是他们吗?我该如何处理呢我的程序不需要这部分JSON,但我不知道如何取出这个字段或告诉解析器“跳过它”,以便它可以解析其余的字段减去这个我不关心的错误字段
谢谢!