I'm using spray-json to serialize an object tree, which is based on a class hierarchy such as this:
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
This is of course a contrived example, the real codebase contains many classes and fields. The idea, however, is that there's a trait that contain some common values.
Now the question is if there's a way I can format the JSON such that instead of _id
the property name would be just id
.
Now before you jump and tell to extend JsonFormat
, the question is whether I can implement this just once for all classes that extend Base
, without implementing a format for each of the classes. As I mentioned, there are many classes, and implementing custom formats for each would be quite tedious and I assume will require quite a lot of maintenance. It would be nice if I could annotate the _id
val in Base
for example. Is there anything that can be done to avoid implementing formats for each of the classes?