【问题标题】:Upickle: read an attribute that may be a String or Int as a StringUpickle:读取可能是 String 或 Int 的属性作为 String
【发布时间】:2019-08-24 08:11:52
【问题描述】:

我有一个字段可能来自一个字符串或整数,但当我阅读它时,我总是想将它作为一个字符串来读取,即如果它是一个整数,我想在它上面做一个 toString

    case class ZoneList(
        someField: Int,
        targetField: String
    )

    object ZoneList {
      implicit val rw: ReadWriter[ZoneList] = macroRW
    }

targetField 是相关字段 看着http://www.lihaoyi.com/upickle/#CustomPicklers,但还是觉得我没有足够的句柄来启动自定义pickler

编辑:

最终这样做了

implicit val anyToStringReader: Reader[Option[String]] =
    reader[ujson.Value].map[Option[String]] { j =>
      Try(j.toString()).toOption
    }

如果我可以只挑出 targetField 属性,但我的实际案例类有很多字段并且我认为我不能这样做并且还使用默认宏,那我会更喜欢。如果有人知道怎么做,请告诉我

【问题讨论】:

    标签: scala upickle


    【解决方案1】:

    由 lihaoyi 在 upickle gitter 中解决:

    “如果你想挑出那个属性,给它一个新类型,它是选项字符串的包装器,并为那个类型编写你的pickler”

    【讨论】:

      猜你喜欢
      • 2016-08-21
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      相关资源
      最近更新 更多