transformation sur un simple tableau json
-
02-01-2020 - |
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.
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