Извлечение пустых массивов с помощью akka и circe? - PullRequest
1 голос
/ 02 июня 2019

У меня есть проект в акке и цирце. В настоящее время я отправляю этот json в теле ответа:

{ "a": 33, "things": [{ "id1": ["2"], "id2": [], "id4": [], "id5": [] } ] }

Я пытаюсь извлечь его из этого класса:

  case class Body(things: Option[List[Things]])
  case class Things(id1: Option[List[String]] = None, id2: Option[List[String]] = None, id3: Option[List[String]] = None, id4:Option[List[String]] = None)

Я делаю это, используя этот код:

  entity(as[Body]).as(Body.getIds)

Этот код опирается на приведенный ниже объект-компаньон

  object Body extends ErrorAccumulatingCirceSupport {

    def getIds(body: Body): List[String] = 
      body.things.get.flatMap(_.id4.getOrElse(List()))
    }

Однако, если я фактически не передам значение в объектах в массиве вещей (например, "id2": ["33"])

Он никогда не заканчивает демаршаллинг JSON. Благодарен за любой совет!

...