saz*_*saz 5 javascript json node.js eslint
我正在尝试读取 JSON 数组。每次我尝试通过像这样传递 JSON 对象键来读取数组/值时 -
json[key]
Run Code Online (Sandbox Code Playgroud)
它显示了一个 Eslint 错误-
[eslint] Generic Object Injection Sink (security/detect-object-injection)
Run Code Online (Sandbox Code Playgroud)
我理解这是一个安全警告,因为密钥可能不存在。但是我如何解决这个警告?有没有更简单的方法来读取 Json 对象。我的计划是将“密钥”传递给函数并根据密钥读取json。
Div*_*iya 12
您正在寻找 ES lint 错误修复:
这是它的语法
json [`${key}`]
Run Code Online (Sandbox Code Playgroud)
例子:
json [`${key}`]
Run Code Online (Sandbox Code Playgroud)
这里有一个很好的答案。一般来说,这条规则是针对偏执狂的,而每个人都呼吁的文章是一个误导。因此,我想说,最好的答案是关闭此规则(如果可以的话)。
评论中的另一个答案是指eslint 贡献者的答案,即该规则非常容易误报,更适合人类审核代码库(警告级别),而不是在 CI 中给出错误。所以我想说你可以完全忽略这条规则或将其关闭。
如果您无法关闭或忽略它,您可以禁用带有注释的 eslint 行,指出它是误报,或者使用其他答案中提到的一些插值。
最后,为了消除任何疑虑,规则创建者的答案是:
“我是这条规则的原始作者 - 就上下文而言,它最初是作为手动代码审查的辅助工具编写的,与 VS Code 的 eslint 插件一起使用。我建议在其他用例中禁用它,因为它会太吵了。”