定製JSON對象屬性名稱我使用噴霧JSON序列化的對象樹,其中基於一個類層次結構如此:與噴霧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
。
現在你跳,並告訴延長JsonFormat
之前,問題是我是否可以擴展Base
所有類實現這個只是一次,但並不實現格式爲每個類的。正如我所提到的,有很多類,並且爲每個類實現自定義格式都會非常繁瑣,而且我認爲需要相當多的維護。例如,如果我可以在Base
中註釋_id
val,那就太好了。是否有任何事情可以避免爲每個類實現格式?
您可以使用'jsonFormat(Person,「id」,「firstName」,「lastName」)'設置字段的名稱(而不是'jsonFormat3(Person)')。 – jrudolph 2014-11-21 07:57:08
@jrudolph這並不理想,因爲我仍然需要爲每個班級分別定義它。不過,這可能是最簡單的方法去噴霧JSON。你能否在這裏把它寫成答案,以便我可以將其標記爲最佳答案?謝謝! – yby 2014-11-23 11:08:18
啊,人們一直在使用的另一種可能性是重寫'ProductFormat.extractFieldNames'來提供名稱的一般映射。 – jrudolph 2014-11-24 07:13:35