У меня есть случай классPlay Framework - как игнорировать некоторые поля для Json Serialization?
case class User (
id: Option[Long] = None,
username: String,
password: Option[String] = None,
)
А вот serialiser для 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))
}
Но я не хочу подвергать пароль поле в ответ API. Как я могу это достичь?
Я использую это также для Slick для чтения/записи данных в соответствующей таблице, я использую его во многих местах, уровне обслуживания, уровне контроллера, и я не хочу создавать отдельный класс для ответа api (без пароль).
спасибо, другой синтаксис, но это работает. Я попытался удалить поле пароля из моего примера выше, но он не скомпилировался, почему? – Teimuraz
Это из-за несовместимости, количество аргументов не будет соответствовать, если вы удалите поле пароля, вам придется изменить часть '(unlift (User.unapply))'. Я предпочитаю этот синтаксис, так как его легче читать и получать доступ к полю вашего объекта. – vdebergue
Спасибо, очень полезно – Teimuraz