Question

J'essaie de mettre à jour le tableau json.Si j'ai du JSON comme celui-ci :

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

Je peux facilement mettre à jour un tableau comme celui-ci.

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

myJson.transform(jsarrayUpdate)     

Mais j'ai un simple tableau JSON sans aucune clé :

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

Et j'espérais pouvoir le modifier avec cette commande :

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

Cela ne fonctionne pas et rien d'autre que j'ai essayé au cours des deux dernières heures.Qu'est-ce que je fais mal?

Merci.

Était-ce utile?

La solution

Qu'en est-il de

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

Cela vous donnera un List[JsObject].Si vous en avez besoin, vous pouvez le reconvertir en JsArray avec

Json.toJson(listOfJsObjects).as[JsArray]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top