通过使用第二级深度的变量获取JSON值



我有一个.json文件,如下所示:

{"宽度":700,"高度":1382中,"dataID":{"id1":"54321〃;,"id2":"12345";}}

我需要动态地(使用变量(获取id1或id2键的值。我使用Cypress函数cy.read((,通过使用明确的字符串,效果很好:

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

但是如何将这个表达式包装到包含id1的变量中呢?还有一个类似的问题:使用变量动态访问对象属性然而,在那里提出的解决方案只涉及第一层次的深度。使用方括号,我可以得到以下值:

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

但如果返回id1value=undefined:

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

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

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

如果您愿意,可以返回一些默认值,而不是undefined

还有一些包可以用来自动为您执行此操作,例如lodash的_.get()方法。

最新更新