我有個問題與使用的Scala在播放框架添加一個字段,JSON對象:播放框架 - 將字段添加到JSON對象
我有一個包含數據的情況下類。例如:
case class ClassA(a:Int,b:Int)
,我能夠創建使用JSON JSON對象寫入:
val classAObject = ClassA(1,2)
implicit val classAWrites= Json.writes[ClassA]
val jsonObject = Json.toJson(classAObject)
並且json看起來像:
{ a:1, b:2 }
讓我們假設我想向Json對象添加一個額外的'c'字段。結果:
{ a:1, b:2, c:3 }
如何在不創建新的案例類或使用Json.obj自己創建Json對象的情況下執行此操作?我正在尋找類似的東西:
jsonObject.merge({c:3})
任何幫助讚賞!
每簽名創建的JSON對象,'寫道。寫'返回'JsValue',所以我不明白你如何擺脫upcasting(不在REPL中)。 – Tvaroh
Tvaroh是正確的,它返回JsValue,據我所見 – elmalto
@elmalto試試吧''classAWrites'將靜態類型爲'OWrites [ClassA]'(在Play 2.2和2.3以及2.10和2.11中)。這是由於Scala宏的「未指定但意圖」的行爲(請參閱我的問題[here](http:// stackoverflow。com/q/13669974/334519)以獲得詳細信息)。 –