喷射Json格式
所以我有一个返回Future[JsValue]的方法:喷射Json格式,json,scala,spray,spray-json,Json,Scala,Spray,Spray Json,所以我有一个返回Future[JsValue]的方法: def foo(): Future[JsValue] = { Json toJson Json.obj("name" -> "John","surname" -> "Doe") } 以及使用它的喷洒路线: path("foo") { onComplete(foo()) { case Success(value) => complete(value) } } 我希望在客户端获得的是Json: {name: "J
def foo(): Future[JsValue] = {
Json toJson Json.obj("name" -> "John","surname" -> "Doe")
}
以及使用它的喷洒路线:
path("foo") {
onComplete(foo()) {
case Success(value) => complete(value)
}
}
我希望在客户端获得的是Json:
{name: "John", surname:"Doe"}
但我在客户机上得到的是一个对象:
Object{fields: [{name: {value: "John"}}, {surname: {value: "Doe"}}]}
如何获得所需的Json?试试这个
onComplete(foo()) {
case Success(value) => complete(value.toString)}
至少它对我有效。您看到了这一点,因为
Map[String,String]
的默认spray marshaller执行您观察到的操作。如果你想要{name:“John”,姓氏:“Doe”,foo:“bar”}
,当你看到一个通用的映射[String,String]
时,你需要编写你自己的封送员。或者,如果你只有名字和姓氏,你可以考虑使用CASE类吗?有更多的字段,但我确实创建了CASE类。我认为有一些更简单的解决办法