如何在json4s中轻松重命名字段名?从他们的文档,我已经尝试了以下代码片段,但它似乎没有重命名该serial字段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"}
Run Code Online (Sandbox Code Playgroud)
使用Jackson库,通过声明注释很容易.但我正在寻找一个纯粹的scala库/解决方案.是否有更好的库或方法用于scala中的对象到json序列化,并且易于字段重命名?
您拥有的代码是返回正确的JSON id作为字段.这是一个在控制台中评估的更完整的示例:
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"}
Run Code Online (Sandbox Code Playgroud)