NodeJS 使用深度第2级的变量获取JSON值

iyfjxgzm  于 2022-11-04  发布在  Node.js
关注(0)|答案(1)|浏览(108)

我有一个.json文件,如下所示:
{【宽度】:700,【高度】:1382,“数据ID”:{“标识1”:“54321”,“标识2”:“一二三四五”} }
我需要动态地获取id 1或id 2键的值(使用变量)。我使用Cypress函数cy.read(),通过使用明确的字符串,它工作得很好:

cy.readFile(pathToConfigFile).then(($file) => {
const id1value = $file.dataID.id1;
});

但是如何将这个表达式 Package 成包含id 1的变量呢?还有一个类似的问题:Dynamically access object property using variable然而,这里提出的解决方案仅涉及第一级深度。使用方括号,我可以得到以下值:

cy.readFile(pathToConfigFile).then(($file) => {
const customVariable = "dataID";
const id1value = $file[customVariable];
});

但在它返回id 1value = undefined的情况下:

cy.readFile(pathToConfigFile).then(($file) => {
const customVariable = "dataID";
const id1 = "id1";
const id1value = $file[customVariable][id1];
});
n53p2ov0

n53p2ov01#

您需要在第一次检查之后检查变量的值,以便知道是否可以读取第二层的值。

cy.readFile(pathToConfigFile).then(($file) => {
  const customVariable = "dataID";
  const id1 = "id1";
  const idValues = $file[customVariable];
  return idValues ? idValues[id1] : undefined;
});

如果愿意,可以返回一些默认值,而不是undefined
也有一些软件包可以自动完成这个任务,比如lodash的_.get()方法。

相关问题