GSON JsonElement到String

tal*_*ghi 8 java json gson

我在将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());}
Run Code Online (Sandbox Code Playgroud)

最奇怪的部分是我在上面用这段代码做同样的事情:

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();
Run Code Online (Sandbox Code Playgroud)

Але*_*сей 11

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

先检查一下:

item.get("start").isJsonNull() ? "" : item.get("start").getAsString();
Run Code Online (Sandbox Code Playgroud)