节点 JS - 检查 JSON 文件是否具有嵌套元素的 hasOwnProperty

Node JS - Check if JSON File hasOwnProperty with nested elements

我只是想检查 JSON 对象是否有特定的键。 首先,我将 JSON 文件解析为一个对象,但是当我尝试这样做时:

  console.log("Inspect:" + util.inspect(oldConfig[websiteName][groupName]));
  console.log("Check Prop: " + oldConfig.hasOwnProperty([websiteName][groupName]));

我的控制台是这样说的:

Inspect:{ tmpTestTitle: { active: false, fileName: 'tmpFilename1' } }
Check Prop: false

我想知道为什么我可以使用 util.inspect 看到键和值,但是当我尝试使用 hasOwnProperty[ 进行检查时却看不到=28=]-函数.

我还检查了 JSON- 文件的正确格式,并尝试使用点符号 (websiteName.groupName) 找到关键点。

作为补充,这是整个 json-对象在控制台中的样子:

{ tmpWebTitle: { tmpGroupname: { tmpTestTitle: [Object] } } }

感谢您的帮助。

Object.hasOwnProperty() 将字符串作为参数并检查对象的键,而不是嵌套对象的键。

对于您的问题,您应该首先访问内部值并在其上检查 hasOwnProperty()

oldConfig[websiteName].hasOwnProperty(groupName));

let oldConfig={ 
              tmpWebTitle: { 
                             tmpGroupname: {
                              tmpTestTitle: [] 
                             } 
                           } 

               };

let websiteName ='tmpWebTitle';
let groupName ='tmpGroupname';
console.log("Check prop:", oldConfig[websiteName].hasOwnProperty(groupName));
.as-console-wrapper { max-height: 100% !important; top: 0; }