У меня есть следующий JSON
Json
{
"components": {
"id": "application",
"actions": [{
"action": "/show-dashboard",
"text": {
"en": "Dashboard",
"es": "Dashboard-ES"
}
}, {
"action": "/showContact",
"text": {
"en": "Personal",
"es": "Personal-ES"
}
}, {
"action": "/showSummary",
"text": {
"en": "Summary",
"es": "Summary-ES"
}
}]
}
}
А мне нужно отфильтровать действия. Возможны только два (этот JSON меньше оригинала, имеет более 20 действий)
Итак, у меня есть JsObject, называемый компонентами с этим json. Тогда я использовал это
Скала
val filteredActions = (components \\ "actions").head.as[List[JsValue]].filter{ _.\("action").as[String] match {
case "/showContact" => true
case "/showSummary" => true
case _ => false
}}
Итак, у меня в FilterActions есть строка json с отфильтрованными действиями, теперь мне нужно обновить компоненты и заменить текущие действия этим.
Я попробую это:
Scala
val jsonTransformer2 = (__ \ 'components \ 'actions).json.update((__ \ 'components).json.put(Json.arr(filteredActions)))
val filtered = components.transform(jsonTransformer2)
но не работает ..
Любой совет, пожалуйста.
Заранее спасибо