1. 程式人生 > 實用技巧 >Gson 轉 JsonArray失敗, JsonPrimitive 不能轉換為 JsonArray

Gson 轉 JsonArray失敗, JsonPrimitive 不能轉換為 JsonArray

解決方法:不直接轉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
);