Проблема в r
внутри вашего flatMap
самого JsArray
, который содержит только один объект. Этот внутренний объект - тот, который вы ищете.
Таким образом, вы можете заставить свой код работать следующим образом:
val parsed = results.flatMap{ r =>
r.as[JsArray].value.head.validate[List[List[Long]]](valueReads) match {
case s: JsSuccess[List[List[Long]]] => Some(s)
case _: JsError => None
}}
parsed: Some(JsSuccess(List(List(1570054140892, 1), List(1570208848841, 1)),/values))
Или вы можете использовать класс case, подобный этому:
case class LongList(values : List[List[Long]])
case class Parent(results : List[LongList])
implicit val cnv = Json.format[LongList]
implicit val cnv2 = Json.format[Parent]
val parsed = json.as[Parent]
println(parsed)
выходы:
Parent(List(LongList(List(List(1570054140892, 1), List(1570208848841, 1)))))