为什么我不能将一个(String - > JsBoolean)添加到Map [String,JsValue]?

时间:2017-12-05 23:34:22

标签: scala playframework

我正在尝试向我的JsObject的.fields添加Map("foo" -> JsBoolean(false)),它总是会产生Map[String, Object]。通常的类型强制技术似乎都没有获得Map[String, JsValue]来应用新的JsObject。这是怎么回事? JsBoolean不是JsValue吗?

val bar = format.write(image)
val bazz = bar.asJsObject.fields
val wrong: Map[String, JsValue] = bazz + ("newBoolean" -> JsBoolean(true))

2 个答案:

答案 0 :(得分:0)

查看以下示例是否有帮助:

val bar = JsObject(List(("key", JsNumber(1))))
val bazz = bar.value
val wrong = bazz + ("newBoolean" -> JsBoolean(true))

这会产生以下结果:

wrong: scala.collection.Map[String,play.api.libs.json.JsValue] = Map(key -> 1, newBoolean -> true)

答案 1 :(得分:0)

badcook走在正确的轨道上;我正在混合几个不同的JSON库。