【问题标题】:How do I make a Reads[T] for an optional value如何为可选值创建 Reads[T]
【发布时间】:2014-09-24 23:10:02
【问题描述】:

我的 JSON 中有一个名为“名称”的字段。这可能是三种状态:

  • 空/未定义
  • 一个空字符串
  • 非空字符串

我希望这个作为 Option[NonEmptyString] 从序列化程序中出来

我已经实现了Reads[NonEmptyString],它读取一个String(最小长度为1),然后放入容器类(NonEmptyString)

如果我使用 readNullable,那么当我尝试将空字符串转换为 NonEmptyString 时,它会抛出异常。

如果我实现 Reads[Option[NonEmptyString]] 这不起作用,大概是因为 Play 将 Option 视为一种特殊情况

如何实现我想要的读取?

【问题讨论】:

    标签: json scala playframework playframework-2.0 deserialization


    【解决方案1】:

    (JsPath \ "key").reads[Option[NonEmptyString]]

    之所以有效,是因为与 readsNullable 不同,它不需要正确反序列化该值(如果存在)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 2017-11-08
      • 2019-05-19
      • 2011-05-26
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多