oym*_*oym 3 json scala marshalling playframework-2.0
我希望直接了解Play Framework如何处理Scala对象到JSON的转换,反之亦然(特别是对于RESTful API):
我在网上一遍又一遍地阅读使用Play的JSON支持只是一种乐趣.但是来自Spring,我有一个内置HttpMessageConverter(特别是MappingJacksonHttpMessageConverter),它将在我的控制器中自动编组请求和响应,几乎没有任何努力.
另一方面,播放(看起来)要求您为每个要编组的课程编写读写转换器.例如(来自Play Docs):
implicit val locationWrites: Writes[Location] = (
(JsPath \ "lat").write[Double] and
(JsPath \ "long").write[Double]
)(unlift(Location.unapply))
Run Code Online (Sandbox Code Playgroud)
对我而言,与Spring的内置自动消息转换功能相比,这似乎很乏味.据我所知,Play也使用了Jackson,所以可以用Scala/Play完成同样的工作,或者也许是我的前提有缺陷?
你可以使用writes 宏:
implicit val locationWrites = Json.writes[Location]
Run Code Online (Sandbox Code Playgroud)
我从来没有使用过Spring,但根据该文档的MappingJacksonHttpMessageConverter,它只会为输入豆类和非类型化的工作HashMap情况.玩!已经Writes为Scala Map实例构建了实例,并且writes宏可以轻松地为案例类创建实例,因此功能类似.但是,我猜测案例类通常比类型化的bean具有更少的样板,即使使用额外的行来创建隐式Writes实例.
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |