Angenommen, ich habe eine JSON wie folgt aus:Play Framework JSON-Transformatoren, wie mit rekursiven Pfaden (jsPath) arbeiten?
{
"name" : "Watership Down",
"location" : {
"lat" : 51.235685,
"long" : -1.309197
},
"residents" : [ {
"name" : "Fiver",
"age" : 4,
"role" : null
}, {
"name" : "Bigwig",
"age" : 6,
"role" : "Owsla"
} ]
}
Wenn ich
tunval transformer1 = (__ \ 'name).json.update(of[JsValue].map(a => JsString("x")))
das name
Feld zu ändern, es funktioniert "x"
.
Aber wenn ich will rekursiv alle Namen zu "x"
ändern, dachte ich, dass ich nur die rekursive jsPath, wie diese verwenden:
val transformerRecursive = (__ \\ 'name).json.update(of[JsValue].map(a => JsString("x")))
Aber wenn ich es versuche, erhalte ich diesen Fehler:
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())))))
Wie sollte ich rekursive Pfad mit JSON Transformer in Playframework verwenden?
Ich denke, der Fehler meldet, dass es mehrere Spiele für die ' 'name' Attribut. Sie müssen möglicherweise über sie iterieren und sie einzeln aktualisieren – irundaia