How to easily rename field-names in json4s? From their documentation, i've tried the following snippet but it doesn't seem to rename the serial
field to id
.
case class Person(serial: Int, firstName: String)
val rename = FieldSerializer[Person](renameTo("serial", "id"))
implicit val format = DefaultFormats + rename
write(Person(1, "Guest")) //returns {"serial":1,"firstName":"Guest"}
With Jackson library, it's pretty easy by declaring an annotation. But i'm looking for a pure scala library/solution. Is there a better library or way for object-to-json serialization in scala with easy field-renaming?
The code you have is returning the correct JSON with id
as a field. Here is a slightly fuller example to evaluate in the console:
import org.json4s._
import org.json4s.FieldSerializer._
import org.json4s.jackson.Serialization.write
case class Person(serial: Int, firstName: String)
val rename = FieldSerializer[Person](renameTo("serial", "id"))
implicit val format: Formats = DefaultFormats + rename
write(Person(1, "Guest")) // actually returns {"id":1,"firstName":"Guest"}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With