0

我有一个字段可能来自一个字符串或整数,但当我阅读它时,我总是想把它作为一个字符串来读取,即如果它是一个整数,我想在它上面做一个 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 属性但我的实际案例类有很多字段并且不认为我可以这样做并且还使用默认宏,那么我会更喜欢。如果有人知道如何让我知道

4

1 回答 1

0

由 lihaoyi 在 upickle gitter 中解决:

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

于 2019-04-02T23:59:36.427 回答