首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Play-json:更新数组中的对象属性时出错

Play-json:更新数组中的对象属性时出错
EN

Stack Overflow用户
提问于 2015-08-09 20:37:57
回答 1查看 1.1K关注 0票数 1

我正在玩play-json库来操纵我的json文件。我遵循了这个正式文件,一切都很好,但是当我们想要更新数组中对象的值时,他们还没有告诉情况,所以我正在尝试我自己的例子。

代码语言:javascript
复制
[
  {
    "key1": [
      {
        "key12": [
          {
            "key121": "text1",
            "key122": 121212,
            "key123": "text2",
            "key124": []
          }
        ],
        "key13": 0
      }
    ],
    "key2": "value2"
  }
]

在上面的例子中,我试图更新"key123“的值,但是一次又一次地得到这个错误,只是找不出我在哪里做错了:

线程"main“中的异常: play.api.libs.json.JsError.get(JsResult.scala:14) at play.api.libs.json.JsError.get(JsResult.scala:13) at Refactor.authPage(Refactor.scala:73) at Builder$.main(Builder.scala:36) at Builder.main(Builder.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)中的JsError.get。reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

这是我的密码。任何帮助都将不胜感激。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2015-08-10 06:58:16

我在互联网上做了一些研究,发现这个问题已经在播放邮件列表上讨论过了,甚至有一个票证来解决这个问题。play-json不支持更新数组中的值(您可以这样做,但这需要大量的工作,您需要更新完整的JsArray)。

然而,play-json目前不支持基于数组索引的转换,有一个助手库弹奏拉链,它支持所有这些特性,并提供更多的支持。Play开发人员已经关闭了上面提到的票据,如果需要的话,假设人们可以使用play-json-zipper

P.S:添加我自己的答案,这样如果其他人通过谷歌搜索登陆这里,他们就可以很容易地找到解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31908610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档