8

我正在使用 spray-json 序列化对象树,它基于类层次结构,例如:

trait Base {
  val _id: Long
}

case class Person(_id: Long, firstName: String, lastName: String) extends Base
case class Company(_id: Long, name: String) extends Base

这当然是一个人为的例子,真正的代码库包含许多类和字段。然而,这个想法是有一个包含一些共同值的特征。现在的问题是,是否有一种方法可以格式化 JSON,而不是_id属性名称id

现在在你跳转并告诉 extend 之前JsonFormat,问题是我是否可以为所有扩展类只实现一次Base,而不为每个类实现一个格式。正如我所提到的,有很多类,为每个类实现自定义格式将非常乏味,我认为需要大量维护。_id例如,如果我可以注释val那就太好了Base。有什么办法可以避免为每个类实现格式吗?

4

1 回答 1

15

这是 jrudolph 的评论作为答案,以方便人们查看。很好的解决方案!

您可以使用jsonFormat(Person, "id", "firstName", "lastName")来设置字段的名称(而不是jsonFormat3(Person))。

jrudolph,如果您将评论更改为答案,我将删除它。

于 2015-11-17T16:00:21.030 回答