」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 GSON 會拋出“預期是 BEGIN_OBJECT 但實際上是 BEGIN_ARRAY”以及如何修復它?

為什麼 GSON 會拋出“預期是 BEGIN_OBJECT 但實際上是 BEGIN_ARRAY”以及如何修復它?

發佈於2025-01-21
瀏覽:735

Why Does GSON Throw

GSON 例外:「預期為BEGIN_OBJECT,但為BEGIN_ARRAY」

錯誤訊息:

com.google.gson .JsonSyntaxException :java.lang.IllegalStateException:預期是BEGIN_OBJECT,但實際上是BEGIN_ARRAY 位於第1 行第2 列

問題概述:

您的JSON 回應是一個物件數組,但您嘗試將其解析為單個物件。

解決方案:

要解決此問題,您需要調整程式碼以正確處理陣列結構。您不應嘗試將 JSON 字串解析為 ChannelSearchEnum.class,而應將其解析為 ChannelSearchEnum 物件的陣列。

更正程式碼:

Type collectionType = new TypeToken>(){}.getType();
Collection enums = gson.fromJson(jstring, collectionType);

此修改後的程式碼將正確地將 JSON 字串解析為 ChannelSearchEnum 物件的集合,解決「預期 BEGIN_OBJECT 但為 BEGIN_ARRAY」例外。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3