all!電梯JsonResponse Backslashed string
我正在嘗試使用Lift和Scala來創建Rest web服務,它使用map reduce函數從MOngoDB獲取結果。因此,例如,這是我的服務功能:
val map ="""function map(){
filteredDur= [];
this."""+sendername+""".forEach(function (s){
if (s.start > new ISODate(""""+ timestamp +""":00.00+02:00")){
filteredDur.push(s);
}
});
filteredDur.sort(function(a,b) {
return a.start-b.start
})
emit(this._id, {After: filteredDur});
}"""
val reduce = "function(key, values) { return values[0]; }"
val mr = MapReduceCommand(mongoColl.getName(), map, reduce, MapReduceInlineOutput, None, None, None, None)
val result = mongoColl.mapReduce(mr)
var temp = result.toString()
//here some transformations of map_reduce result like getting read of map_reduce //comments
return JString(temp);
serve { //this are Lift's RestHelper methods
case Req("sendungen" :: "sendungen" ::Nil, suffix, GetRequest) => getAllSendungen()
}
我在Lift中使用RestHelper。問題是我沒有得到一個有效的JSON :(我得到的所有報價反斜線結果:
{ \"desc\" : \"\" , \"duration\" : 30 , \"start\" : { \"$date\" : \"2010-07-13T09:30:00Z\"} , \"end\" : { \"$date\" : \"2010-07-13T10:00:00Z\"}
和我的客戶分析器不分析這個,所以我想:
{ "desc" : "" , "duration" : 30 , "start" : { "$date" : "2010-07-13T09:30:00Z"}
如何我可以做這個工作,我知道我可以代替客戶端應用程序斜線,但我不認爲這是非常優雅的我嘗試使用情況的類,但得到了同樣的這裏是case類:。
case class Sendung(duration:Int, subtitle:String, desc:String, image:String, sender:String,end:java.util.Date, title:String, start:java.util.Date) {
def toJSON (e : Sendung) : JObject = {
import net.liftweb.json.JsonDSL._
import net.liftweb.json.JsonAST._
("key" ->
("duration" -> JInt(duration))) ~
("subtitle" -> subtitle) ~
("desc" -> desc));
}
}
你如何格式化你的代碼? –
對不起,這些比例的多個引號讓所有的東西都搞亂了:( – Nigul