【发布时间】:2017-10-26 21:36:58
【问题描述】:
在序列化case class 时,我试图将 json 对象中的所有键都设置为 PascalCase 格式。看起来正确的方法是从 org.json4s 包中定义一个 CustomKeySerializer 并按照我的意愿重新格式化密钥。但是,虽然我能够让CustomSerializer 工作,但在序列化案例类(具有未知类型的嵌套案例类)时,我无法让CustomKeySerializer 实际使用。我的代码如下所示:
case object PascalCaseSerializer extends CustomKeySerializer[String](format => (
{ case _ => "this is the deserializer and I don't need it" },
{ case _ => "this does nothing" }
))
implicit val formats: Formats = DefaultFormats + PascalCaseSerializer
case class Foo(thingId: Int, eventData: Any)
case class Bar(numThings: Int)
val event = Foo(1, Bar(2))
val payloadJson = write(event) // """{"thingId":1,"eventData":{"numThings":2}}"""
我在这里错过了什么?
【问题讨论】:
标签: json scala json4s json-serialization