使用GSON时为空指针

时间:2016-05-02 12:49:05

标签: json parsing nullpointerexception gson

大家好,我似乎无法弄清楚我在这里做错了什么..我希望能有一双新鲜的眼睛。

我的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 ..

2 个答案:

答案 0 :(得分:0)

您使用的引号有误,请将引号“”更改为"",然后您的代码应该有效。如果使用那些引号,则messageBody.getAsJsonArray("“Events”");可能会起作用,与EventDocId相同。

答案 1 :(得分:0)

“和"是两个不同的角色。 mac用户要注意。