json scala rest post spray

Extracción de JSON sin procesar como cadena dentro de una ruta de pulverización POST



scala rest (1)

Puede usar la directiva de extracto como

def rawJson = extract { _.request.entity.asString} . . . case "value2" => rawJson{ json =>// use the json }

Tengo una ruta POST Spray y la solicitud contiene un cuerpo JSON (tipo de contenido "application / json"). Quiero una forma de extraer el JSON sin procesar de esta solicitud dentro de mi ruta.

Para http: // host: puerto / somepath / value1 , quiero extraer el cuerpo de la publicación como TextMsgResponse . Pero para http: // host: puerto / somepath / value2 quiero extraer el cuerpo de la publicación solo como Json sin procesar (por ej., { "name":"Jack", "age":30 }

val myRoute = path("somepath" / Segment) { pathSegment => post { //use only POST requests pathSegment match { case "value1" => entity(as[TextMsgResponse]) { textMsg => complete { //do something with the request StatusCodes.OK } } case "value2" => { //here is I want to extract the RAW JSON from the request } } }