У меня есть класс case в scala, которому необходимо проанализировать объект json. Однако объект json может выглядеть по-разному. Нравится:
"hint": {
"structure": [
"HIDE"
]
}
Или вот так:
"hint": {
"type": "1",
"template": "A"
}
Я хочу разобрать их обоих в один и тот же класс case в Scala с помощью circe. Я делаю что-то вроде этого:
case class Hint(`type`:Option[String] = None,template:Option[String], structure: Option[List[String]])
object Hint {
implicit val hintJsonDecoder: Decoder[Hint] = deriveDecoder[Hint]
implicit val hintJsonEncoder: ObjectEncoder[Hint] = deriveEncoder[rHint]
}
Но похоже, что должен быть более изящный способ сделать это, чтобы я мог просто вернуть, скажем, список строк в случае первого экземпляра и только тип и шаблон во втором экземпляре. Но я не могу понять, как это сделать с помощью Цирцеи.
Благодарен за помощь!