首頁 > Java > java教程 > 為什麼 GSON 在解析 JSON 陣列時會拋出'Expected BEGIN_OBJECT but was BEGIN_ARRAY”?

為什麼 GSON 在解析 JSON 陣列時會拋出'Expected BEGIN_OBJECT but was BEGIN_ARRAY”?

Linda Hamilton
發布: 2025-01-01 01:25:10
原創
769 人瀏覽過

Why Does GSON Throw

預期為BEGIN_OBJECT,但使用GSON 時為BEGIN_ARRAY

嘗試使用GSON 將包含物件陣列的JSON 字串列表時,「預期為BEGIN_OBJECT 但為BEGIN_ARRAY」的問題出現。發生這種情況是因為 GSON 預期解析單一對象,但卻遇到對象數組。

要解決此問題,正確的方法是指定預期的資料結構是物件數組。這可以透過修改程式碼來實現,如下所示:

ChannelSearchEnum[] enums = gson.fromJson(yourJson, ChannelSearchEnum[].class);
登入後複製

或者,為了獲得更大的靈活性,您可以使用以下程式碼:

Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType();
Collection<ChannelSearchEnum> enums = gson.fromJson(yourJson, collectionType);
登入後複製

以上是為什麼 GSON 在解析 JSON 陣列時會拋出'Expected BEGIN_OBJECT but was BEGIN_ARRAY”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板