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

问题描述

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

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记录。

解决方法

当您要有条件地选择嵌套键,然后仅根据某些条件更新那些匹配的键大小写时,更新运算符会更有用。如果对象是简单的平面架构,则解决方案中的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"
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...