大佬教程收集整理的这篇文章主要介绍了使用Play渲染JSON!和斯卡拉,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下案例类:
case class User(firstname:string,lastname:string,age:int)
在我的控制器中:
val milo:User = new User("Sam","Fisher",23); Json.toJson(milo);
我得到编译错误:找不到类型modelS.User的Json反序列化器.尝试为此类型实现隐式写入或格式.
在我以前的项目中,我必须在类中实现一个reader,writer对象才能工作,我发现它非常烦人.
object UserWebsite { implicit object UserWebsiteReads extends Format[UserWebsite] { def reads(json: Jsvalue) = UserWebsite( (json \ "email").as[String],(json \ "url").as[String],(json \ "imageurl").as[String]) def writes(ts: UserWebsitE) = JsObject(Seq( "email" -> JsString(ts.email),"url" -> JsString(tS.Url),"imageurl" -> JsString(ts.imageurl))) } }
但为了帮助您避免一些错误,我会给你一个进口提示:
– 仅使用这些进口! (注意不包括json.Reads)
import play.api.libs.json._ import play.api.libs.functional.syntax._ import play.api.libs.json.Writes._
而且你只需编写这段代码就可以将你的课程写入/从Json读取(当然你将拥有User而不是Address:
implicit val addressWrites = Json.writes[Address] implicit val addressReads = Json.reads[Address]
现在,它们将自动使用:
写的例子:
Ok(Json.toJson(entities.map(s => Json.toJson(s))))
阅读的例子(我把我的例子用于通过从身体读取json来创建实体)请注意这里使用的addressReads
def create = Action(parse.json) { request => request.body.validate(addressReads).map { entity => Addresses.insert(entity) Ok(RestResponses.toJson(RestResponse(OK,"succesfully created a new entity."))) }.recover { Result => Badrequest(RestResponses.toJson(RestResponse(BAD_requEST,"Unable to transform JSON body to entity."))) } }
总之,他们尝试(并成功)使JSON的事情变得非常简单.
以上是大佬教程为你收集整理的使用Play渲染JSON!和斯卡拉全部内容,希望文章能够帮你解决使用Play渲染JSON!和斯卡拉所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。