我试图更新json数组。如果我有这样的JSON:

{
  "value":[
  {
    "name":{
      "first":"Bob",
      "last":"Pegelano"
  },
    "age":31,
    "email":"bob@gmail.com"
  },
  {
    "name":{
      "first":"Majkl",
      "last":"Skot"
    },
    "age":321,
    "email":"gecko@gmail.com"
  }]
}

我可以很容易地更新这样的数组。

val jsarrayUpdate = (__ \ 'value).json.update(
  __.read[JsArray].map{ o => o :+ Json.obj( "field243" -> "coucou" ) }
)      

myJson.transform(jsarrayUpdate)     

但是我有简单的数组JSON没有任何键:

  [{
    "name":{
      "first":"Bob",
      "last":"Pegelano"
  },
    "age":31,
    "email":"bob@gmail.com"
  },
  {
    "name":{
      "first":"Majkl",
      "last":"Skot"
    },
    "age":321,
    "email":"gecko@gmail.com"
  }]

并希望能够用这个命令编辑它:

val jsarrayUpdate2 = __.json.update(
  __.read[JsArray].map{ o => o :+ Json.obj( "field243" -> "coucou" ) }
)  

这不起作用,也不是我在过去两个小时内尝试过的其他任何东西。我做错了什么?

谢谢!.

有帮助吗?

解决方案

那呢?

jsArray.as[List[JsObject]].map {i => i ++ Json.obj( "field243" -> "coucou")}

这会给你一个 List[JsObject].如果您需要,您可以将其转换回 JsArray

Json.toJson(listOfJsObjects).as[JsArray]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top