[英]Scala Lift - Return model as json object
我有以下內容:
object API_Chat extends RestHelper {
serve {
var response = Chat.findAll(
("room" -> "aroom")
~
("handle" -> "ahandle")
).map(_.asJValue)
JsonResponse(write(response(0)) :: Nil)
}
}
我想要做的是返回一個json對象,其中包含來自模型Chat的所有值。
但是,當我收到響應時,它看起來像這樣:
["{\"name\":\"J1M\",\"_id\":\"4f8d55b240d41dcad5c3f982\",\"target\":\"all\",\"time\":1334662578,\"room\":\"jroom\",\"value\":\":)\",\"user\":\"j1m\",\"handle\":\"f1aaa95db5150a6330552e30918728b5\",\"level\":\"_1\"}"]
顯然我只是想返回一個項目,所以不確定為什么將它包裝在數組中,而且似乎也逃脫了json字符串。
任何人都可以對如何進行這項工作有所了解嗎?
任何幫助,不勝感激,在此先感謝:)
我不確定您要作為JsonResponse發送的內容,但是您的響應值是List [JValue]。 調用write(response(0))會將列表中的第一個JValue序列化為字符串。 然后,您將該字符串與Nil連接起來,以創建一個包含單個元素的List [String]。 JsonResponse.apply的單參數版本采用JValue,因此正在調用net.liftweb.json.JsonDSL(seq2jvalue)中的隱式轉換,該轉換將Seq [A]轉換為JArray。....這就是為什么看到一個JSON數組作為響應。
如果只想返回第一個元素,則應該可以使用:
JsonResponse(response(0))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.