У меня есть поле, которое может исходить от остальных API в виде String или Int, но когда я читаю его, я всегда хочу прочитать его как String, т.е. если оно приходит как Int, я хочу сделать toString для него
case class ZoneList(
someField: Int,
targetField: String
)
object ZoneList {
implicit val rw: ReadWriter[ZoneList] = macroRW
}
targetField
это поле, о котором идет речь
Глядя на http://www.lihaoyi.com/upickle/#CustomPicklers,, но все еще не думаю, что у меня достаточно ручки для запуска пользовательского сборщика
редактирование:
в итоге сделал это
implicit val anyToStringReader: Reader[Option[String]] =
reader[ujson.Value].map[Option[String]] { j =>
Try(j.toString()).toOption
}
Предпочел бы, если бы я мог выделить только атрибут targetField, но в моем фактическом классе дел много полей, и я не думаю, что смогу это сделать, а также использую макрос по умолчанию. Если кто-нибудь знает, как дать мне знать