2014-10-07 445 views
0

我正在Scala寫一個Play 2.3.2應用程序。 我正在寫一個統計控制器,查詢我的mongodb數據庫獲取一些信息。 現在我試圖實現一種方法,返回與用戶關聯的所有標籤。 我得到JSON格式的HTTP請求如下所示:從JSon請求獲取字符串

{ 
    "user": "[email protected]" 
} 

我想解析JSON請求和獲取字符串聯想到了JSON的「用戶」字段,如果JSON是正確的,我想用String對象做一些工作,否則我想返回一個BadRequest響應。

我的方法實現是這樣的:

def userEmail = Action.async { request => 
     val userEmail: String = request.body.asJson.map { json => 
         json.validate[String].map { 
          //if the json congaing the "user tag" return the instance, get the instance, otherwise return a BadRequestInstance 

         } 

     } 
     def elaborate(user: String)= { 
     //some work 
     } 
     elaborate(userEmail) 
} 

我怎麼能作出這樣的?

+1

閱讀文件! https://www.playframework.com/documentation/2.3.x/ScalaJson – johanandren 2014-10-07 08:40:30

+0

我解決使用\「用戶」,並使用as [String]將JsonString強制轉換爲String對象,謝謝。 我在文檔搜索之前,但我沒有找到任何答覆,謝謝。 – 2014-10-07 09:57:19

回答

1

由於johanandren提及讀playframework文檔應該解決您的問題。

提示:我會定義case類和隱式讀取以將json數據轉換爲case類型。

case class User(email: String) 
implicit val userReads = (
    (JsPath \ "email").read[String] 
)(User.apply _)