2015-01-29 8 views
9

मेरे पास एक पोस्ट स्प्रे मार्ग है और अनुरोध में एक JSON बॉडी (सामग्री-प्रकार "एप्लिकेशन/जेसन") है। मैं अपने मार्ग के अंदर इस अनुरोध से कच्चे JSON निकालने का एक तरीका चाहता हूं।एक स्प्रे पोस्ट मार्ग के अंदर स्ट्रिंग के रूप में कच्चे JSON निकालने

http://host:port/somepath/value1 के लिए मैं निकालने के लिए TextMsgResponse निकालना चाहता हूं। लेकिन http://host:port/somepath/value2 के लिए मैं निकालने पोस्ट शरीर बस के रूप में एक कच्चे Json करना चाहते हैं (जैसे, { "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   
     } 
    } 
    } 
+1

रूप extract निर्देश उपयोग कर सकते हैं आप 'कोशिश की इकाई (है [सरणी के रूप में [बाइट]]) 'या' इकाई (के रूप में [स्ट्रिंग]) '? – cmbaxter

+0

हाँ और दोनों काम नहीं करते हैं। –

उत्तर

8

आप

def rawJson = extract { _.request.entity.asString} 
    . 
    . 
    . 
case "value2" => rawJson{ json =>// use the json 
    } 
संबंधित मुद्दे