我发展在斯卡拉我第一次玩2.1的应用程序。 我试图完成的任务是JSON解析成3层不同情况下的类。 问题是 - 我不知道在哪里申报所有情况下类。 在它的每个类的自己的文件或全部在一个文件中。 这里是我做了什么(这是行不通的,案例值不在控制器对象可见):
文件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的例子,但我错过了一些基本的东西 - 在那里把所有的代码块? 什么是文件结构?
谢谢你,安德烈。