首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Gson 解析嵌套列表 JSON 實戰:泛型 TypeToken 與 List 映射技巧

     編輯:程式設計疑難解答

問題

JSON 頂層為數組或嵌套列表,直接 gson.fromJson(json, List.class) 因類型擦除只能得到 List<LinkedTreeMap>。

解決:TypeToken

Type listType = new TypeToken<List<Entity>>() {}.getType();
List<Entity> list = gson.fromJson(json, listType);

嵌套列表示例

// JSON: {"data": [{"items": [{"id":1},{"id":2}]}]}
class Wrapper {
    List<Group> data;
}
class Group {
    List<Item> items;
}
Type wrapperType = new TypeToken<Wrapper>() {}.getType();
Wrapper w = gson.fromJson(json, wrapperType);

注意

  • 實體類需無參構造,字段名與 JSON 鍵對應(或用 @SerializedName)。
  • 避免在循環中重複創建 TypeToken,靜態常量復用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved