我有个问题与使用的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)以获得详细信息)。 –