如何在Scala中使用spray库来处理嵌套数组

时间:2017-06-15 12:49:25

标签: scala

我有一个用JSON序列化格式编写的嵌套数组,我想解析它并递归处理这些项目。喷涂怎么办? 这是我理想的代码。但它没有用。

import Array._
import spray.json._
import DefaultJsonProtocol._   

var s = "[1,2,[3,4,5,[6]]]"
var array = JsonParser(s).convertTo[Array[_]]
// error: Cannot find JsonReader or JsonFormat type class for Array[_]
//          JsonParser(s).convertTo[Array[_]]
for (item <- array) {
    item match {
        case x: Int => do some thing
        case y: Array[_] => do some thing recursively
    }
}

1 个答案:

答案 0 :(得分:1)

import Array._
import spray.json._
import DefaultJsonProtocol._   

var s = "[1,2,[3,4,5,[6]]]"
var array = JsonParser(s).convertTo[List[JsValue]]

for (item <- array) {
    item match {
        case x: JsNumber => println("this is a number:", x)
        case y: JsArray => println("this is an array:", y)
        case _ => println("xxxxx")
    }
}

这是我的打印结果:

(this is a number:,1)
(this is a number:,2)
(this is an array:,[3,4,5,[6]])