Marshall Javascript Array для Seq [Any] с помощью Spray JSON - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть пара ключ-значение, где значением является нетипизированный массив Javascript:

{"data": [1, "abc", 54.0, "cdf"]}

Я хочу преобразовать значение в Seq [Any] в Scala.

Seq(1, "abc", 54.0, "cdf")

Пока я пробовал:

val jsonString = args(0).parseJson.asJsObject.getFields("data").seq
print(jsonString)
// Vector([1, "abc", 54.0, "cdf"])

1 Ответ

0 голосов
/ 29 сентября 2018

Вам необходимо выполнить следующие преобразования, чтобы сделать тип вывода Seq [Any]

import spray.json._

object Test extends App {
  val json: String =
    s"""
       |{"data": [1, "abc", 54.0, "cdf"]}
     """.stripMargin

  val jsonString: Seq[Any] = json.parseJson.asJsObject.getFields("data").seq
    .head.asInstanceOf[JsArray].elements.map(_.toString.replace("\"", "").asInstanceOf[Any])

  println(jsonString.length)
  jsonString.foreach(x => println(x))
}
...