Play Framework - 如何忽略 Json 序列化的某些字段?

2024-03-14

我有案例课

case class User (
  id: Option[Long] = None,
  username: String,     
  password: Option[String] = None,
)

这是该案例类的 json 序列化器

object User {
  implicit val userWrites: Writes[User] = (
      (JsPath \ "id").write[Option[Long]] and
      (JsPath \ "username").write[String] and     
      (JsPath \ "password").write[Option[String]] and
    )(unlift(User.unapply))
}

但我不想暴露passwordapi 响应中的字段。我怎样才能实现它?

我也使用它来 Slick 在适当的表中读取/写入数据,我在很多地方使用它,服务层,控制器层,并且我不想为 api 响应创建单独的类(没有密码)。


只需从您的密码字段中删除Writes:

implicit val userWrites: Writes[User] = Writes { user =>
  Json.obj(
    "id" -> user.id,
    "username" -> user.username
  )
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Play Framework - 如何忽略 Json 序列化的某些字段? 的相关文章

随机推荐