Как сгладить полиморфные списки с помощью десериализации Moshi

#android #moshi

#Android #moshi

Вопрос:

Я пытаюсь сгладить следующий Json

 [
  {
    "type": 1,
    "field": ""
  },
  {
    "type": 2,
    "field": "",
    "other_field": ""
  },
  {
    "type": 3,
    "field": "",
    "list_field": [
      {
        "type": 4,
        "some_field": ""
      },
      {
        "type": 4,
        "some_field": ""
      }
    ]
  }
]
 

я хотел бы получить следующую структуру:

 [
  {
    "type": 1,
    "field": ""
  },
  {
    "type": 2,
    "field": "",
    "other_field": ""
  },
  {
    "type": 3,
    "field": ""
  },
  {
    "type": 4,
    "some_field": ""
  },
  {
    "type": 4,
    "some_field": ""
  }
]
 

Поскольку все элементы наследуются от одного и того же родительского класса, я попробовал как PolymorphicJsonAdapterFactory, так и пользовательский JsonAdapter.Завод, но безуспешно.

Есть ли способ сделать это в Moshi?

Комментарии:

1. адаптер пользовательского типа gson может помочь в этом, у moshi есть некоторые ограничения

2. В прошлом я использовал адаптеры типа gson, но поскольку мне это нужно в проекте, использующем Moshi, я хотел бы найти способ его использования