scala - json4s - 如何使用多个 FieldSerializer

标签 scala json4s

使用多个 FieldSerializer 的正确语法是什么?我正在尝试重命名 3 个字段,只有将其中一个字段与 DefaultFormats 连接起来才有效

val currg = FieldSerializer[Currency](renameTo("gameCurr", "gameCurr"), renameFrom("currg", "gameCurr"))
val curre = FieldSerializer[Currency](renameTo("currency", "currency"), renameFrom("curre", "currency"))
val lprice = FieldSerializer[Currency](renameTo("price", "price"), renameFrom("lprice", "price"))

implicit val formats = org.json4s.DefaultFormats + lprice //+ curre + currg 

如果我只使用一个 FieldSerializer,它就像一个魅力

implicit val formats = org.json4s.DefaultFormats + lprice

最佳答案

您可以使用 orElse 重命名单个 FieldSerializer 中的多个字段:

val rename_currency_fields = FieldSerializer[Currency](
  renameTo("foo", "bar") orElse renameTo("baz", "qux") 
  renameFrom("bar", "foo") orElse renameFrom("qux", "baz")
)

implicit val formats = org.json4s.DefaultFormats + rename_currency_fields

关于scala - json4s - 如何使用多个 FieldSerializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622782/

相关文章:

scala - 比较 Scala 中的两个 Map

scala - 每个 Scala 项目都针对特定的 sbt 版本吗?

scala - 使用 DefaultFormats 时出现 json4s 错误

json - 结合类型和字段序列化器

scala - 使用 Json4S 从包含 Some 和 None 值的列表生成 Json 字符串

scala - 如何检查 Gatting/Scala 中是否存在属性

scala - 如何动态定义流式数据集的模式以写入 csv?

scala - 如何将 RDD[GenericRecord] 转换为 Scala 中的数据帧?

json - 如何防止 json4s 渲染空值?

json4s:使用自定义序列化程序反序列化特定字段