是否可以在依赖于动态数据的条件下使用Dataweave掩码或更新功能?

时间:2020-09-11 18:16:53

标签: dataweave mule4

我需要掩盖一些动态的字段。这就是我现在正在使用的:

var data = { a: 1, b: 2, c: 3, d: 4, e: 5 }
var mask = { a: " ", d: "0"}
---
data mapObject ((value, key, index) -> 
    (key): mask[key] default value
)

我得到了预期的输出

{"a": " ","b": 2,"c": 3,"d": "0","e": 5}

是否可以为此使用maskupdate函数?另外,如果您知道哪个是性能最高的解决方案,我真的很想知道,因此我需要使用它来处理70MM记录。

1 个答案:

答案 0 :(得分:0)

当您要有条件地选择嵌套键,然后仅根据某些条件更新那些匹配的键大小写时,更新运算符会更有用。如果对象是简单的平面架构,则解决方案中的mapObject就是O(N)。如果顺序无关紧要,并且键是唯一使用的,则是另一个选项-和++。

var data = { a: 1, b: 2, c: 3, d: 4, e: 5, a:5, d:"something" } 
var mask = { a: " ", d: "0"} 
--- 
data -- keysOf(mask) ++ mask

这将产生输出:

{
  "b": 2,
  "c": 3,
  "e": 5,
  "a": " ",
  "d": "0"
}