Gson 轉 JsonArray失敗, JsonPrimitive 不能轉換為 JsonArray
阿新 • • 發佈:2020-08-27
解決方法:不直接轉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);