首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Json4s在序列化过程中重命名字段?

如何使用Json4s在序列化过程中重命名字段?
EN

Stack Overflow用户
提问于 2014-02-11 08:13:06
回答 2查看 4K关注 0票数 7

如何在json4s中轻松地重命名字段名?从他们的文档中,我尝试了以下代码片段,但似乎没有将serial字段重命名为id

代码语言:javascript
复制
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的序列化,而且字段重命名也很简单?

EN

回答 2

Stack Overflow用户

发布于 2014-11-29 12:02:32

您拥有的代码将返回正确的JSON,并将id作为字段。下面是一个稍微完整一点的示例,可以在控制台中进行评估:

代码语言:javascript
复制
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"}
票数 7
EN

Stack Overflow用户

发布于 2019-05-27 20:59:37

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

代码语言:javascript
复制
implicit val formats: Formats = DefaultFormats + rename
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21690594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档