Вопрос

Я пытаюсь обновить массив 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] с

Json.toJson(listOfJsObjects).as[JsArray]
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top