json4s - как использовать несколько FieldSerializer

Какой правильный синтаксис для использования нескольких 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

1 ответ

Вы можете переименовать несколько полей в одном FieldSerializer с orElse:

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
Другие вопросы по тегам