希望检查JSON文件中是否存在诸如objecta.objectb.objectc之类的完整路径。第一个主意是将JSON解析为一个对象,然后使用反射检查属性是否存在,但是当我按如下所述尝试使用它时,它将不允许我在属性键中访问子级?
我想念什么?
const object1 = {
property1: 42,
property2 : {
property2a: "abc"
},
};
console.log(Reflect.has(object1, 'property1'));
// expected output: true
console.log(Reflect.has(object1, 'property2.property2a'));
// expected output: true but is false
console.log(object1.property2.property2a);
// prints value as expected
console.log(Reflect.has(object1, 'property3.property2a'));
// expected output: false
console.log(Reflect.has(object1, 'toString'));
// expected output: true
答案 0 :(得分:2)
您不应在此处使用Reflect
。相反,您应该使用多个条件语句来检查其是否存在,否则返回false:
const object1 = {
property1: 42,
property2 : {
property2a: "abc"
},
};
console.log(object1 && object1.property2 && object1.property2.property2a ? true : false)
console.log(object1 && object1.property2 && object1.property2.property2b ? true : false)