2014-10-07 5 views
0

저는 스칼라에서 Play 2.3.2 애플리케이션을 작성하고 있습니다. mongodb 데이터베이스에 몇 가지 정보를 얻기 위해 쿼리하는 Statistic 컨트롤러를 작성하고 있습니다. 이제 사용자에게 연결된 모든 태그를 반환하는 메서드를 구현하려고합니다. json으로 올바르게 내가 원하는 경우JSon 요청에서 문자열 가져 오기

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

내가, json으로 요청을 구문 분석하고 JSON의 "사용자"필드에 문자열 동료를 얻으려면 : 나는 다음과 같이 JSON 형식의 HTTP 요청을받을 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

+0

\ "user"를 사용하여 JsonString을 String 객체로 캐스팅했습니다. [String], 감사합니다. 이전에 설명서를 검색했지만 답변을 찾지 못했습니다. 감사합니다. –

답변

1

johanandren에 언급 된 playframework 문서에서 문제를 해결할 수 있습니다.

힌트 : json 데이터를 사례 클래스 유형으로 변환하기 위해 사례 클래스와 암시 적 읽기를 정의합니다.

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