2017-10-07 1 views
0

Wie lautet die richtige Syntax für die Verwendung mehrerer FieldSerializer? Ich versuche, 3 Felder umbenennen es funktioniert nur, wenn ich einen von ihnen mit DefaultFormats concatjson4s - So verwenden Sie mehrere FieldSerializer

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 

Wenn ich nur einen einzigen FieldSerializer lassen, es funktioniert wie ein Charme

implicit val formats = org.json4s.DefaultFormats + lprice 

Antwort

0

Sie mehrere umbenennen Felder in einem einzigen FieldSerializer mit 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 
Verwandte Themen