如何让Moshi处理复杂的嵌套数据?

时间:2018-01-02 18:35:56

标签: json moshi

假设我有一些JSON数据出现,我最终想用这样的代码表示:

data class Parent(val id: String, val children: List<Child>)

data class Child(val id: String, val parentId: String)

但是进来的JSON更像是这样:

{
  "id": "parent-1",
  "children": [
    {
      "idPrefix": "child",
      "idNum": "1"
    },
    {
      "idPrefix": "child",
      "idNum": "2"
    },
    {
      "idPrefix": "child",
      "idNum": "3"
    }
  ]
}

换句话说,您需要使用自定义适配器:

  1. 在解析每个孩子时正确撰写Child.id
  2. 解析父项时,为每个子项添加child.parentId
  3. 编写一个可以ChildAdapteridPrefix合并的idNum非常简单。但是一旦你进入第二层筑巢,我不知道该怎么做;我不想将整个事情解析为一大块数据,然后手动处理它。有没有更好的方法来处理这个问题(可能嵌套甚至超过2个级别)?

    此外,这有望在两个方向上发挥作用 - 即fromJson()toJson()

0 个答案:

没有答案