json - Scala Play JSON 读取中的常量值

标签 json scala playframework playframework-json

在通过 JSON 读取构造对象时,我想使用常量值。

例如,该类将是:

case class UserInfo(
  userId: Long = -1, 
  firstName: Option[String] = None,
  lastName:  Option[String] = None
)

阅读将是:
   implicit val userRead: Reads[UserInfo] = (
      (JsPath \ "userId").read[Long] and
      (JsPath \ "firstName").readNullable[String] and
      (JsPath \ "lastName").readNullable[String] 
    )(UserInfo.apply _)

但我不想在 JSON 对象中指定 userId 的值。
我将如何对读取进行编码,以便始终在 UserInfo 对象中创建 -1 的值,而不在正在读取的 JSON 对象中指定它?

最佳答案

使用 Reads.pure

implicit val userRead: Reads[UserInfo] = (
  Reads.pure(-1L) and
  (JsPath \ "firstName").readNullable[String] and
  (JsPath \ "lastName").readNullable[String] 
)(UserInfo.apply _)

关于json - Scala Play JSON 读取中的常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384339/

相关文章:

python - 如何使用 YouTube-DL 按播放列表中文件名的标题重命名所有下载的文件?

javascript - hogan js 中的复杂迭代逻辑?

javascript - 将表单字段转换为 JSON 对象

实现 Java 接口(interface)的 Scala 类 - 具有相同删除的双重定义

java - 在 Play! 运行时更改表模式框架

java - 使用 native 查询级联删除

java - 根据 swagger 文件验证 json 有效载荷 - json-schema-validator

postgresql - 斯卡拉.slick.SlickException : JdbcProfile has no JdbcType for type UnassignedType - on Option fields

scala - intellij/activator/sbt 正在下载其他先前下载的依赖项

deployment - LESS 插件在 Play Framework 中如何工作?