解決方法:不直接轉JsonArray,中間加一步操作,先轉String,再用String轉成JsonArray。
第二次用google的json出現意外情況了。
第一次是出現了"[]",被判斷成是JsonObject,我都懵逼了。然后只能字符串判斷,if ("[]".equal(xx)),具體情況忘了,總之就是說一個字符串按道理是能被轉換的,結果判斷結果是另一個類型。把我搞傻了,最后還是用的死方法,對該結果進行字符串判斷。
今天第二次出現了奇怪的東西。一個正常的JsonArray,我都已經通過編譯工具和在線Json格式化測試過了,結果就是正常的Json數組,結果Gson就是給我整個,你這個是JsonPrimitive。我特么的,然后搞了半個多小時。
后來突然有個想法,我直接打印的String結果可以被Json格式化,說明他就是正常的,那么不通過直接的getAsJsonArray和強轉,我中間再加一步操作,先通過getAsString把字符串拿到手,然后再轉JsonArray。
結果就成功了,噗。
String dataStr = jsonObject.get("data").getAsString(); if (StrUtil.isBlank(dataStr)) { return resultDataList; } JsonArray data = gson.fromJson(dataStr, JsonArray.class);