簡體   English   中英

Scala Lift-將模型作為json對象返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM