玩框架:如何在Scala中serialize/deserializefrom/toJSON

Play framework: how to serialize/deserialize from/to JSON in Scala

在java中我使用了jackson和Gson带注解,Play中有类似的东西吗?它迫使我在 类:

之外创建另一个这样的对象
  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]

有关文档,请参阅 here

也就是说,Play json 支持的一大优点是它是明确的。与 Jackson 相比,您可以更灵活地组合和重用解析器。对于 Jackson,您真的不知道它在做什么,它会进行大量反射以访问您的 class,这对您来说是完全不透明的。相比之下,Play 的 json 支持中没有使用反射,因此您拥有完全的控制权。