tous! J'essaye de créer le service de Web de repos avec Lift et Scala, qui obtient des résultats de MOngoDB avec des fonctions de réduction de carte. Donc par exemple ceci est ma fonction de service:Lift JsonResponse String rétro-éclairé
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()
}
J'utilise RestHelper dans Lift. le problème est que je ne suis pas valide JSON :(Je reçois toutes les citations backslashés. Résultat:
{ \"desc\" : \"\" , \"duration\" : 30 , \"start\" : { \"$date\" : \"2010-07-13T09:30:00Z\"} , \"end\" : { \"$date\" : \"2010-07-13T10:00:00Z\"}
et mon analyseur client ne pas analyser ce donc je veux.
{ "desc" : "" , "duration" : 30 , "start" : { "$date" : "2010-07-13T09:30:00Z"}
Comment puis-je faire ce travail, je sais que je peux remplacer les barres obliques dans l'application cliente, mais je ne pense pas que ce soit très élégant, j'ai essayé d'utiliser des classes de cas, mais on m'a donné la même chose ici est la classe de cas:..
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));
}
}
que diriez-vous de formater votre code? –
désolé, les guillemets de cette échelle gâchent tout :( – Nigul