transformação em array json simples
-
02-01-2020 - |
Pergunta
Estou tentando atualizar o array json.Se eu tiver JSON como este:
{
"value":[
{
"name":{
"first":"Bob",
"last":"Pegelano"
},
"age":31,
"email":"bob@gmail.com"
},
{
"name":{
"first":"Majkl",
"last":"Skot"
},
"age":321,
"email":"gecko@gmail.com"
}]
}
Posso atualizar facilmente um array como este.
val jsarrayUpdate = (__ \ 'value).json.update(
__.read[JsArray].map{ o => o :+ Json.obj( "field243" -> "coucou" ) }
)
myJson.transform(jsarrayUpdate)
Mas eu tenho um array JSON simples sem nenhuma chave:
[{
"name":{
"first":"Bob",
"last":"Pegelano"
},
"age":31,
"email":"bob@gmail.com"
},
{
"name":{
"first":"Majkl",
"last":"Skot"
},
"age":321,
"email":"gecko@gmail.com"
}]
E esperava poder editá-lo com este comando:
val jsarrayUpdate2 = __.json.update(
__.read[JsArray].map{ o => o :+ Json.obj( "field243" -> "coucou" ) }
)
Isso não está funcionando nem qualquer outra coisa que tentei nas últimas duas horas.O que estou fazendo de errado?
Obrigado.
Solução
A respeito
jsArray.as[List[JsObject]].map {i => i ++ Json.obj( "field243" -> "coucou")}
Isto lhe dará um List[JsObject]
.Se precisar, você pode convertê-lo novamente para JsArray
com
Json.toJson(listOfJsObjects).as[JsArray]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow