Gson:反序列化和 "extend" 一个巨大的 JSON

Gson: Deserialize and "extend" a huge JSON

我有一个巨大的 Trello JSON,我需要将其转换为另一个具有不同结构的 JSON。为了做到这一点,我使用 Gson 在输出格式中进行反序列化和序列化,但输入 JSON 具有仅包含 ids 值的键,这些键实际上被定义为 [=25] 中其他 JSON 部分的元素=] 方式。该结构使得难以对 link 对象进行反序列化,而无需编纂特定且较长的反序列化器。有什么简单的方法可以做到这一点?

输入JSON:

{
  "id": "5edf568cd37bf379d96640b3",
  "name": "Trello board",
  // A LOT ENTRIES...
  "lists": [{
      "id": "5edf568dabadcf538c546c3c",
      "name": "TO DO"
  },{
      "id": "5edf568dfd9cb03d1c346cbf",
      "name": "IN PROGRESS" 
  }],
  "cards": [{
    "desc": "Card 1"
    "idList": "5edf568dfd9cb03d1c346cbf", // This should be deserialized with the specific "lists" element
     // A LOT ENTRIES...
  },{
    "desc": "Card 2"
    "idList": "5edf568dfd9cb03d1c346cbf",
     // A LOT ENTRIES...
  }],
  // A LOT ENTRIES...
}

当前 POJO:

data class TrelloList(val id: String, val name: String)
data class Card(val desc: String, val idList: String)

想要卡片 POJO

data class Card(val desc: String, val list: TrelloList)

如何在不编写完整的自定义反序列化程序的情况下将这些 ID 扩展或转换为相关对象?

最后我不得不编写一个自定义解串器。遗憾的是 Gson 不计入结构 Jsons 适配器或在具有相同 ID 的元素之间进行连接的东西。