JsObject有一种
+方法可让您向对象添加字段,但是很遗憾,您
jsonObject的类型是
JsValue,而不是
JsObject。您可以通过两种方法解决此问题。首先是使用
as:
scala> jsonObject.as[JsObject] + ("c" -> Json.toJson(3)) res0: play.api.libs.json.JsObject = {"a":1,"b":2,"c":3}
从
as本质上讲,您很沮丧-
告诉编译器,“您只知道这是一个
JsValue,但请相信我,它也是一个
JsObject”。在这种情况下,这是安全的,但这不是一个好主意。一种更原则的方法是
OWrites直接使用:
scala> val jsonObject = classAWrites.writes(classAObject)jsonObject: play.api.libs.json.JsObject = {"a":1,"b":2}scala> jsonObject + ("c" -> Json.toJson(3))res1: play.api.libs.json.JsObject = {"a":1,"b":2,"c":3}
也许有一天,该
Json对象将具有
toJsonObject需要
OWrites实例的方法,而这种过于显式的方法将不是必需的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)