Scala提升返回模型作为json对象
我有以下资料:Scala提升返回模型作为json对象,json,scala,lift,Json,Scala,Lift,我有以下资料: object API_Chat extends RestHelper { serve { var response = Chat.findAll( ("room" -> "aroom") ~ ("handle" -> "ahandle") ).map(_.asJValue) JsonResponse(write(response(0
object API_Chat extends RestHelper {
serve {
var response = Chat.findAll(
("room" -> "aroom")
~
("handle" -> "ahandle")
).map(_.asJValue)
JsonResponse(write(response(0)) :: Nil)
}
}
我要做的是返回一个json对象,该对象包含来自模型聊天的所有值
但是,当我得到响应时,它看起来是这样的:
["{\"name\":\"J1M\",\"_id\":\"4f8d55b240d41dcad5c3f982\",\"target\":\"all\",\"time\":1334662578,\"room\":\"jroom\",\"value\":\":)\",\"user\":\"j1m\",\"handle\":\"f1aaa95db5150a6330552e30918728b5\",\"level\":\"_1\"}"]
显然,我试图只返回一个项目,因此不确定为什么它被包装在一个数组中,而且它似乎已经逃逸了json字符串
有人能告诉我们怎么做吗
非常感谢您的帮助,提前感谢:我不确定您想发送什么作为JsonResponse,但您的回复val是一个列表[JValue]。调用writeresponse0将列表中的第一个JValue序列化为字符串。然后将该字符串与Nil连接起来,形成一个包含单个元素的列表[String]。JsonResponse.apply的单参数版本采用JValue,因此将调用net.liftweb.json.JsonDSL seq2jvalue中的隐式转换,该转换将Seq[a]转换为JArray。。。。。这就是为什么您将JSON数组视为响应 如果只想返回第一个元素,则应能够使用:
JsonResponse(response(0))