如何使用喷雾json将嵌套集合编组到json中?

时间:2015-08-12 08:12:05

标签: json scala spray spray-json

考虑一下代码:

val myList : List[Map[String, AnyRef]] = ...

//during spray routing

import spray.json._

complete(myList.toJson)

我得到了错误:

Cannot find JsonWriter or JsonFormat type class for List[Map[String,AnyRef]]

首先为什么???喷雾spray.json.CollectionFormats来源包含:

implicit def listFormat[T :JsonFormat] = new RootJsonFormat[List[T]] {
    def write(list: List[T]) = JsArray(list.map(_.toJson).toVector)
    def read(value: JsValue): List[T] = value match {
      case JsArray(elements) => elements.map(_.convertTo[T])(collection.breakOut)
      case x => deserializationError("Expected List as JsArray, but got " + x)
    }
}

所以每个列表项理论上都可以通过_.toJson调用进行转换。 _Map[String,AnyRef],但也支持Map类型。为什么我的例子没有编译?如何让它发挥作用?

0 个答案:

没有答案