我正在Scala中開發我的第一個Play 2.1應用程序。 我試圖完成的任務是將json解析爲3個不同的案例類。問題是 - 我不知道在哪裏申報所有案例類。每個類都在自己的文件中,或全部在一個文件中。這裏是我做了什麼(這是行不通的,案例值不在控制器對象可見):scala playframework json隱式case類轉換
文件LoginBase.scala
package models abstract class LoginBase case class Login(email: String, password: String) extends LoginBase case class RestoreLogin(email: String, captchaID: String, captchaAnswer: String) extends LoginBase case class RegisterLogin(email: String, password: String, captchaID: String, captchaAnswer: String) extends LoginBase
文件
package controllers import play.api._ import play.api.mvc._ import play.api.data._ import play.api.data.Forms._ import play.api.Play.current import play.api.cache.Cache import play.api.libs.json._ import play.api.mvc._ import play.api.libs.functional.syntax._ import nl.captcha.Captcha import nl.captcha.Captcha._ import nl.captcha.gimpy.FishEyeGimpyRenderer import nl.captcha.text.renderer.ColoredEdgesWordRenderer import nl.captcha.text.renderer.DefaultWordRenderer import nl.captcha.gimpy.DropShadowGimpyRenderer import java.io.ByteArrayOutputStream import javax.imageio.ImageIO import java.util.UUID import play.api.libs.functional.syntax._ import models.LoginBase object LoginActions extends Controller { implicit val loginReads = ( (__ \ "email").read[String] and (__ \ "password").read[String] )(Login.apply _) implicit val restoreLoginReads = ( (__ \ "email").read[String] and (__ \ "captchaID").read[String] and (__ \ "captchaAnswer").read[String] )(RestoreLogin) implicit val registerLoginReads = ( (__ \ "email").read[String] and (__ \ "password").read[String] and (__ \ "captchaID").read[String] and (__ \ "captchaAnswer").read[String] )(RegisterLogin) def registerLogin = Action(parse.json){ /* To be implementd */ } }
如果有人可以幫助我,我會感激。 所有我能找到的是REPL的例子,但我錯過了一些基本的東西 - 在哪裏把所有的代碼段?什麼是文件結構?
謝謝, 安德烈。
歡迎SO!請編輯您的答案,以提供您在此處建議的內容。 – Derek 2013-11-21 20:04:36