Scala 使用akka和circe提取空数组?

Scala 使用akka和circe提取空数组?,scala,akka,circe,Scala,Akka,Circe,我在akka和circe有一个项目。我目前正在响应正文中发送此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[St

我在akka和circe有一个项目。我目前正在响应正文中发送此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()))
    }
但是,除非我在things数组中的对象中实际传入一个值(例如“id2”:[“33”])

它从未完成json的解组。谢谢你的建议