我在将JsonElement转换为字符串时遇到麻烦。我正在使用getAsString()方法调用,但我一直收到不支持的操作异常。我检查了我正在调用的get的输出,这似乎是正确的。

这是我的代码,不好意思的命名约定:

JsonParser jp2 = new JsonParser();
JsonObject root2 = jp2.parse(getAllEventsResults.get_Response()).getAsJsonObject();
JsonArray items2 = root2.get("items").getAsJsonArray();

for(int i=0; i<items2.size(); i++){
    JsonObject item = items2.get(i).getAsJsonObject();
    System.out.println(item.get("start").getAsString());}

最奇怪的部分是我使用以下代码执行了与上面相同的操作:
JsonParser jp = new JsonParser();
JsonObject root = jp.parse(getAllCalendarsResults.get_Response()).getAsJsonObject();
JsonArray items = root.get("items").getAsJsonArray();
JsonObject firstItem = items.get(0).getAsJsonObject();
String firstCalId = firstItem.get("id").getAsString();

最佳答案

item.get("start")是否有可能是JsonNull

首先检查:

item.get("start").isJsonNull() ? "" : item.get("start").getAsString();

10-08 19:10