Преобразование на простой массиве JSON
-
02-01-2020 - |
Вопрос
Я пытаюсь обновить массив 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]
. Не связан с StackOverflow