7

如何轻松重命名 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 的序列化?

4

2 回答 2

7

您拥有的代码id以字段形式返回正确的 JSON。这是在控制台中评估的稍微完整的示例:

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"}
于 2014-11-29T04:02:31.793 回答
0

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

implicit val formats: Formats = DefaultFormats + rename
于 2019-05-27T12:59:37.250 回答