在“喷涂中的帖子”中更改正文字段名称

时间:2015-03-25 15:55:40

标签: scala spray-json

我正在考虑更换名为" type"在一个带有像这样的事情的POST中的JSON中

def rawJson = extract { _.request.entity.asString}
post {
    rawJson { json => 
       val new json = println(json.replace("\"type\":", "\"eventType\":"))}
}

现在,有了这个新的JSON,我想重新注入POST,就像一个新的调用一样。 我知道"重定向"但在这种情况下,我没有看到使用它的方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

我会回答我自己的问题。我希望其他人能发现它有用: 我即时更改帖子。我的问题是我正在使用:entity(as[Event])我无法改变它。但是像JObject一样对它进行反序列化我可以控制字段。它是一个非常强大的工具。

    post {
      entity(as[JObject]) {
        eventO =>
          val nevent: json4s.JValue = eventO.mapField(x => if (x._1=="type") ("eventType",x._2) else (x._1,x._2))
          val event = nevent.extract[Event]
          handlePerRequest {
            RouteMessageToCluster(event)
          }
      }
    }