【发布时间】:2018-10-05 21:58:55
【问题描述】:
假设我有一个这样的 JSON:
{
"name" : "Watership Down",
"location" : {
"lat" : 51.235685,
"long" : -1.309197
},
"residents" : [ {
"name" : "Fiver",
"age" : 4,
"role" : null
}, {
"name" : "Bigwig",
"age" : 6,
"role" : "Owsla"
} ]
}
如果我这样做了
val transformer1 = (__ \ 'name).json.update(of[JsValue].map(a => JsString("x")))
将name 字段更改为"x" 可以正常工作。
但如果我想递归地将所有名称更改为"x",我想我可以只使用递归jsPath,如下所示:
val transformerRecursive = (__ \\ 'name).json.update(of[JsValue].map(a => JsString("x")))
但是当我尝试时,我得到了这个错误:
scala> jsobject.transform(transformerRecursive) res1: play.api.libs.json.JsResult[play.api.libs.json.JsObject] = JsError(List((//name,List(ValidationError(List(error.path.result.multiple),WrappedArray()) )))))
我应该如何在 playframework 中使用带有 JSON Transformer 的递归路径?
【问题讨论】:
-
我认为错误报告
'name属性有多个匹配项。您可能需要遍历它们并单独更新它们
标签: scala playframework