【问题标题】:Null Pointer when using GSON使用 GSON 时的空指针
【发布时间】:2016-05-02 12:49:04
【问题描述】:

大家好,我似乎无法弄清楚我在这里做错了什么。我希望能重新审视它。

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

【问题讨论】:

  • 你的照片告诉你什么
  • 添加了打印。忘记添加了
  • 你看到到处都是双引号了吗?这是不对的
  • 认为可能是这种情况..我似乎无法弄清楚为什么 gson 在我的引号旁边添加引号..
  • hoooooooly shinanigans 引号是奇怪的引号,这就是为什么它没有被 gson 识别。

标签: json parsing nullpointerexception gson


【解决方案1】:

您使用的引号是错误的,将您的引号 “” 更改为 "",然后您的代码应该可以工作。如果使用这些引号,那么 messageBody.getAsJsonArray("“Events”"); 可能会起作用,EventDocId 也是如此。

【讨论】:

    【解决方案2】:

    “和”是两个不同的字符。mac用户请注意。

    【讨论】:

    • 考虑到 json 通常来自某种服务器,这并不特定于 mac 用户
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多