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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM