Java Json解析器错误?AmazonAPI错误的JSON响应?
下面是我用来为我的产品清单解析amazon JSON响应的代码Java Json解析器错误?AmazonAPI错误的JSON响应?,java,json,parsing,amazon-web-services,Java,Json,Parsing,Amazon Web Services,下面是我用来为我的产品清单解析amazon JSON响应的代码 ListInventorySupplyResponse response = client.listInventorySupply(request); ResponseHeaderMetadata rhmd = response.getResponseHeaderMetadata(); String responseJSON = response.toJSON(); JSONParser parser = new J
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验证器()中
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 '}', ',', ']'
正如您所看到的,由于某些原因,大多数产品都可以立即使用,但有一种产品不能立即使用,亚马逊会给我发送一个“datetime”,说明何时可以使用。然而,他们没有把日期时间加引号,这使得它成为一个无效的JSON
是我吗?是他们吗?我该怎么处理呢。我的程序不需要JSON的这一部分,但是我不知道如何去掉这个字段,或者告诉解析器“跳过它”,这样它就可以解析剩下的字段,减去我不关心的这个不正确的字段
谢谢 在我看来,
DateTime
值应该在quotesIt中!但问题是,这是亚马逊给我的回应。我没有权力在解析器中更改它。实际上,brainwave也许我可以尝试一些.toString.replace操纵,并用某种字符串替换“dateformat”之后的所有内容。这太奇怪了,以至于亚马逊给我的JSON是不正确的。。。。谢谢你的关注。如果你看到什么,请告诉我!这可能只是我的java对象正在做的一些奇怪的事情,我将在草稿行中再次检查。如果这是他们的问题,我可能会打电话给amazon,哈哈,我会尝试在我的代码中实现一些字符串操作修复