我有一张格式<String, Any>
的scala地图。我的目标是迭代地图的所有键并创建一个由所有这些k,v
对组成的新json对象。我正在为json库使用play框架。
我试过了:
var out = JsNull
for (str <- inp) {
out = out.as[JsObject] + (str -> Json.toJson(inp(str)))
}
然而,Json.toJson返回一个JsonNode,而它期待一个JsValue。我已经查看了这个SO Question来添加新项目。
问题1:如何将JsonNode转换为JsValue
问题2:这是scala中的错误实现。我正在使用var。我如何转换相同的逻辑,以便我使用val。我对函数式编程特别陌生,所以很难从通常的迭代循环中思考。