2016-06-22 110 views
0

我的問題很簡單,就是如何將json轉換爲第三方java class,它沒有方法applyunapply而不是scala case class。詳細的代碼是這樣事先此以下在播放框架2.5.3中,解析一個java對象的JsValue

def login = Action { implicit request => 
    val jsonBody = request.body.asJson // the jsonBody is value of Option[JsValue] 

    val myClass = //some method can be provided to convert the jsonBody to myClass(a third-part java class) 
} 

感謝

回答

0

可以定義一個案例類像MyCaseClass(A:字符串,B:智力),並驗證你得到這樣的JSON:

request.body.asJson.validate[MyCaseClass] match { 
    case myCaseClass: JsSuccess[MyCaseClass] => new JavaClass(a, b) 
    case error: JsError => //handle the error 
} 

請注意,您可以使用Action(parse.json) { implicit request =>來驗證您是否擁有有效的Json對象。

+0

感謝您的快速回答,但這不是我的要求。另一件事,'parse.json'只能在內容類型爲'application/json'時使用。當content-type不是'application/json'時,如果你使用'parse.json',請求體將被解析爲None。 – Jerry

+0

如果內容類型不是application/json,那麼在執行.asJson時會出錯。如果這不是你想要的,請詳細說明它們,因爲我沒有得到它們。 – Simon