Node JS - Проверить, если JSON Файл имеетOwnProperty с вложенными элементами - PullRequest
0 голосов
/ 09 апреля 2020

я просто пытаюсь проверить, есть ли у JSON объекта заданный ключ c. Сначала я анализирую файл 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 .

Я также проверил правильное форматирование JSON - Файл и попытка достичь ключа с помощью точечных обозначений (websiteName.groupName).

Для дополнения, вот как выглядит весь json -объект в консоли:

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

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 09 апреля 2020

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; }
...