使用GSON 解碼巢狀資料結構
提供的JSON 資料表示一個物件數組,而解碼程式碼預期的是單一物件ChannelSearchEnum 類別物件。這種不匹配會導致「預期是 BEGIN_OBJECT,但實際上是 BEGIN_ARRAY」異常。
要解決此問題,需要修改解碼方法以處理物件陣列。一種合適的方法是將 TypeToken 類別與 fromJson 方法結合使用。
Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType(); Collection<ChannelSearchEnum> enums = gson.fromJson(json, collectionType);
此程式碼為 ChannelSearchEnum 物件的集合建立類型令牌,然後在反序列化期間使用它來指定所需的類型。因此,GSON 將正確解析 JSON 陣列並填入包含各個 ChannelSearchEnum 實例的 Collection。
以上是如何使用 GSON 將 JSON 陣列解碼為物件集合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!