为交叉发帖提前致歉:我将这个问题提交给了喷子用户列表,但该列表似乎已被审核,并且似乎没有人在家。希望 SO 是一个更好的场所。
我很难用spray-json
. 例如,一个简单的immutable.Map[String,String]
工作正常,但一个immutable.Map[String,Foo]
, where Foo
is 我定义的案例类没有。文档给我留下的印象是我只需要定义一个JsonFormat
forFoo
就可以了。
这是一些示例代码:
import spray.json._
import DefaultJsonProtocol._
case class Foo(hi: String)
object FooProtocol extends DefaultJsonProtocol {
implicit val fooFormat: JsonFormat[Foo] = jsonFormat1(Foo)
}
import FooProtocol._
object Thing {
def toSomething = {
Map("foo" -> Foo("bar"), "baz" -> Foo("quux")).toJson
}
}
这会产生以下编译器错误:
[info] Compiling 1 Scala source to C:\spraytest\target\scala-2.10\classes...
[error] C:\spraytest\src\main\scala\Foo.scala:12: Cannot find JsonWriter or JsonFormat type class for scala.collection.immutable.Map[String,Foo]
[error] Map("foo" -> Foo("bar"), "baz" -> Foo("quux")).toJson
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 5 s, completed Jun 26, 2014 11:40:26 AM
我难住了。