繁体   English   中英

如何在使用Json4s序列化期间重命名字段?

[英]How can I rename a field during serialization with Json4s?

如何在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"}

使用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"}

您的代码段错误地命名为隐式。 它应该是:

implicit val formats: Formats = DefaultFormats + rename

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM