我正在使用 play-json 库来操作我的 json 文件。我已经关注了这个官方文档,一切正常,但他们没有告诉我们何时要更新数组中对象的值,所以我正在尝试我自己的示例。
IE
[
{
"key1": [
{
"key12": [
{
"key121": "text1",
"key122": 121212,
"key123": "text2",
"key124": []
}
],
"key13": 0
}
],
"key2": "value2"
}
]
在上面的示例中,我试图更新“key123”的值,但一次又一次地收到此错误,只是无法找出我在哪里做错了:(
线程“主”java.util.NoSuchElementException 中的异常:play.api.libs.json.JsError.get (JsResult.scala:14) 处的 JsError.get(JsResult.scala:14) at play.api.libs.json.JsError.get(JsResult.scala :13) 在 Refactor.authPage(Refactor.scala:73) 在 Builder$.main(Builder.scala:36) 在 Builder.main(Builder.scala) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun。 reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:483) 在 com.intellij.rt .execution.application.AppMain.main(AppMain.java:140)
这是我的代码。任何形式的帮助将不胜感激。
val transform = (((__ (0) \ 'key1)(0) \ 'key12)(0) \ 'key123).json.update(__.read[JsString].map(x => JsString("updated")))
val jsValue = Json.parse("example.json").transform(transform).get