dataweave - 为什么具有不存在键的更新运算符会产生两个单独的键/值?
问题描述
我正在尝试使用更新运算符
case long at .reservations.*reservation.*flight.destination.longitude ->
long as Number as String {format: "###.000"}
case lat at .reservations.*reservation.*flight.*destination.latitude ->
lat as Number as String {format: "###.000"}
case congestion at .reservations.*reservation.flight.*destination.*status!
->
"Moderate Traffic"
//case dest at .reservations.*reservation.*flight.*destination -> dest
}
每个预订对象只有一个航班,只有一个目的地孩子。状态键不存在。更新运算符的结果是添加了两个单独的状态键/值,一个在原始目标对象中,但随后在与原始子节点相同的级别添加了一个新的空目标对象。
"reservations":{
"reservation": {
"First Name" : "Andrea",
...
"flight": {
"destination": {
"timeZone": "America/Los_Angeles",
"status": "Moderate Traffic"
}
},
"flight": {
"destination": {
"status": "Moderate Traffic"
}
}
},
"reservation": {
"First Name": "Andrea",
"Last Name": "Schmidt",
...
如何调整选择器或我可以添加什么条件表达式以仅在原始匹配的目标对象中添加缺少的状态键/值?
解决方案
推荐阅读
- sql - 如何在 pgAdmin4 中单独运行部分 SQL 查询?
- c# - 当 NUnit 运行多个程序集时,Assembly.GetExecutingAssembly 的意外位置
- mysql - MySQL 错误 1292:截断不正确的双精度值
- reactjs - 访问字段的状态 ID React
- javascript - 将 Google Maps API v3 搜索结果限制在某个国家/地区,同时将它们偏向某个位置
- javascript - What exactly is concat + apply doing to flatten an array?
- django - 如何扩展 django 的 createsuperuser 管理命令?
- typescript - TypeScript 3.0 React defaultProps 支持不起作用
- generics - 引用 Kotlin 中的多边界通用接收器扩展函数
- r - 如何写一个 n 圆的转移矩阵