使用Spray JSON将Marshall Javascript数组转换为Seq [Any]

时间:2018-09-29 02:52:52

标签: scala spray-json

我有一个键-值对,其中值是一个无类型的Javascript数组:

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

我想在Scala中将值转换为Seq [Any]。

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 :(得分:1)

您需要进行以下转换,以将输出类型设置为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))
}