大家好,我似乎无法弄清楚我在这里做错了什么..我希望能有一双新鲜的眼睛。
我的JSON看起来像这样:
{
“EventDocVersion”:”2006-05-05”,
“EventDocId”:”ABC”,
“CustomerId”:”527185744892”,
“Events”:[{
“EventType”:“HITReviewable”,
“EventTimestamp”:“2005-01-31T235959Z”,
“HITTypeId”:“3ZYIH7REHFTJ0AUXF6IE6EXWY5V1O5”,
“HITId”:“3LAZVA75NI96Z33B4ICBRHEA9FQ2OM”
}]
}
以下是我解析它的方法:
JsonObject messageBody = new JsonParser().parse(rawMessage.getBody()).getAsJsonObject();
JsonArray events = messageBody.getAsJsonArray("Events");
System.err.println("MessageBody: [" + messageBody + "]");
System.err.println("We have Events: [" + events + "]");
打印报表正在打印:
MessageBody: [{"“EventDocVersion”":"”2006-05-05”","“EventDocId”":"”ABC”","“CustomerId”":"”527185744892”","“Events”":[{"“EventType”":"“HITReviewable”","“EventTimestamp”":"“2005-01-31T235959Z”","“HITTypeId”":"“3ZYIH7REHFTJ0AUXF6IE6EXWY5V1O5”","“HITId”":"“3LAZVA75NI96Z33B4ICBRHEA9FQ2OM”"}]}]
We have Events: [null]
有趣的部分是我甚至无法做到
messageBody.getAsJsonString("EventDocId");
对我来说也会返回null ..
答案 0 :(得分:0)
您使用的引号有误,请将引号“”
更改为""
,然后您的代码应该有效。如果使用那些引号,则messageBody.getAsJsonArray("“Events”");
可能会起作用,与EventDocId相同。
答案 1 :(得分:0)
“和"是两个不同的角色。 mac用户要注意。