在 Spray 中更改 Post 中的正文字段名称

Change a body Field name in a Post in Spray

我正在考虑用 POST 中的 JSON 中的 "type" 字段替换为这样的东西

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

现在,有了这个新的 JSON,我想重新注入 POST 以将其视为新呼叫。 我知道 "redirect" 但我看不到在这种情况下使用它的方法。

谢谢!

我会回答我自己的问题。我希望其他人能发现它有用: 我已经即时更改了 post。我的问题是我使用的是: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)
          }
      }
    }