Я пытаюсь выборочно обновить некоторые значения во вложенной иерархической структуре данных.
У меня есть вложенные входные данные, такие как
var flights =
{
"flights": {
"flight": {
"airline-name": "american",
"flight-code": "AA103",
"plane-type": null,
"longitude": "33.94250107",
"price": "+750.00",
"destination": {
"airport-name": "los angeles international airport",
"city": "los angeles",
"altitude": "125",
"longitude":"33.94250107"
}
},
"flight": {
"available-seats": "+18.00",
"longitude": "33.94250107",
"airline-name": "delta",
"plane-type": "boeing 747",
"destination": {
"airport-name": "los angeles international airport",
"longitude": "33.94250107"
}
}
}
}
Я хочу замаскировать все долготы на всех уровнях одним оператором case.
flights dw::util::Values::update {
case dest at .flights.*flight.*destination.longitude -> "******"
case ptype at .flights.*flight.*"plane-type" if((ptype ~= null)) -> "*******"
}
совпадает только с целевым значением.
{
"flights": {
"flight": {
"airline-name": "american",
"flight-code": "AA103",
"plane-type": "*******",
"longitude": "33.94250107",
"price": "+750.00",
"destination": {
"airport-name": "los angeles international airport",
"city": "los angeles",
"altitude": "125",
"longitude": "******"
}
},
"flight": {
"available-seats": "+18.00",
"longitude": "33.94250107",
"airline-name": "delta",
"plane-type": "boeing 747",
"destination": {
"airport-name": "los angeles international airport",
"longitude": "******"
}
}
}
}
Кроме того, есть ли способ сделать что-то вроде полета .. * пункта назначения вместо жесткого кодирования пути?