我正在使用spray-json序列化一个基于类层次结构的对象树,比如这样:
这只是一个人为设置的例子,实际的代码库包含许多类和字段。然而,基本思想是有一个包含一些共同值的trait。 现在的问题是是否有一种方法可以格式化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
这只是一个人为设置的例子,实际的代码库包含许多类和字段。然而,基本思想是有一个包含一些共同值的trait。 现在的问题是是否有一种方法可以格式化JSON,使属性名称为
id
而不是_id
。在你着手扩展
JsonFormat
之前,问题是是否可以为所有扩展了Base
的类实现这个功能,而不必为每个类编写格式。正如我所提到的,有很多类,为每个类实现自定义格式将非常繁琐,而且我认为需要进行大量的维护。如果我能注释Base
中的_id
val,那就太好了。有什么方法可以避免为每个类都实现格式吗?
jsonFormat(Person, "id", "firstName", "lastName")
来设置字段的名称(而不是使用jsonFormat3(Person)
)。 - jrudolphProductFormat.extractFieldNames
以提供名称的通用映射。 - jrudolph