Playframework Play framework:如何在Scala中从/到JSON进行序列化/反序列化

Playframework Play framework:如何在Scala中从/到JSON进行序列化/反序列化,playframework,playframework-2.0,Playframework,Playframework 2.0,在java中,我将jackson和Gson与注释一起使用,是否有类似的功能?它迫使我在类之外创建另一个类似这样的对象: implicit val payloadRead : Reads[payload] = ( (JsPath \ "act").read[String] and (JsPath \ "sk").read[Int] and (JsPath \ "uid").read[String] and (JsPath \ "ft").read

在java中,我将jackson和Gson与注释一起使用,是否有类似的功能?它迫使我在类之外创建另一个类似这样的对象:

  implicit val payloadRead : Reads[payload] = (
      (JsPath \ "act").read[String] and
      (JsPath \ "sk").read[Int] and
      (JsPath \ "uid").read[String] and
      (JsPath \ "ft").read[String] and
      (JsPath \ "lt").read[String] and
      (JsPath \ "em").read[String] and
      (JsPath \ "nts").read[String] and
      (JsPath \ "ugr").read[Int]
  )  (payload.apply _)

Play确实提供了宏来为您生成上述内容,例如:

implicit val payloadRead = Json.reads[payload]
有关文档,请参阅

这就是说,Play的json支持的一个很好的特性就是它是显式的。与Jackson相比,您可以更灵活地组合和重用解析器。对于Jackson,你并不知道它在做什么,它在做大量的反射来访问你的类,这对你来说是完全不透明的。相反,Play的json支持中没有使用反射,因此您可以完全控制