我的要求是在记录 JSON 的某些字段时屏蔽它们。我正在使用 node.js。我使用了node.js的json-masker库。在“白名单”参数中传递名称中带有“-”的属性的 JSON 路径时,出现词汇错误。
JSON
{
"attribute1":"value1",
"attribute2":"value2",
"attribute-name":"value3"
}
代码
const masker = require('json-masker');
const mask= masker({
whitelist: ['$.attribute1','$.attribute-name']
});
错误
Error Lexical error on line 1. Unrecognized text.
$.attribute-name
还有,有没有办法只指定需要屏蔽的属性,而不是指定不需要屏蔽的属性(如白名单中指定的)。 请建议是否有更好的方法使用任何其他函数/库来执行此操作。
请注意,我收到此 JSON,因此无法更改 key 名称
最佳答案
正确的语法是'$["attribute-name"]'
而不是'$.attribute-name'
$
字段由 jsonpath 处理,json-masker 的依赖项。这个问题在他们的 github 问题之一 ( #90 ) 中进行了讨论,并提供了解决方案。
关于node.js - 如何使用 json-masker 对包含 "-"的字段屏蔽 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866719/