Я пытаюсь сделать все ключи в объекте json, отформатированном в PascalCase, при сериализации файла case class
. Похоже, правильный способ сделать это - определить CustomKeySerializer
из пакета org.json4s
и переформатировать ключи, как я хочу. Однако, хотя я могу заставить CustomSerializer
работать, я не могу заставить CustomKeySerializer
фактически использоваться при сериализации класса case (с вложенными классами case неизвестных типов). Мой код выглядит следующим образом:
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}}"""
Что мне здесь не хватает?