Как получить вложенное значение в JSON-объекте
Для извлечения целевого значения из вложенного JSON-объекта по заданному ключу следуйте этим шагам:
- Откройте Терминал/SSH и введите
node
, чтобы начать практиковать программирование.
- Проверьте, существует ли
target
в obj
, используя оператор in
.
- Если
target
найден, верните соответствующее значение в obj
.
- Если
target
не найден, используйте Object.values()
и Array.prototype.reduce()
, чтобы рекурсивно вызывать функцию dig
для каждого вложенного объекта, пока не будет найдена первая пара ключ/значение, соответствующая условию.
Вот код для функции dig
:
const dig = (obj, target) =>
target in obj
? obj[target]
: Object.values(obj).reduce((acc, val) => {
if (acc !== undefined) return acc;
if (typeof val === "object") return dig(val, target);
}, undefined);
Для использования функции dig
сначала создайте JSON-объект с вложенными уровнями, например, так:
const data = {
level1: {
level2: {
level3: "some data"
}
}
};
Затем вызовите функцию dig
с JSON-объектом и желаемым ключом:
dig(data, "level3"); // 'some data'
dig(data, "level4"); // undefined
Эти примеры вернут значение ключа level3
в объекте data
и undefined
для несуществующего ключа level4
.