Я прохожу json
и key
, чтобы получить функцию value
. Ключ может быть как abc.cde.def, а также может быть как fgh.nodejs - извлекать значение из вложенных и не вложенных json
Если ключи содержат .
то вложенная json
и значения должны быть retirieved соответственно, которые правильно происходит, но если это простой json
не имеющий гнездо, то он не работает. Печать длины keysData (в случае key
, как FGH) печатает 3, где он должен напечатать 1.
function getValueFromJson(jsonInput,keyInput) {
if(keyInput.includes('.')){
var keysData = keyInput.split('.');
}
else {
keysData = keyInput.toString()
}
var jsonHierarchy = jsonInput;
if(parseInt(keysData.length) === parseInt('1')){
console.log(jsonHierarchy)
console.log(keysData)
console.log(jsonHierarchy[keysData ])
jsonHierarchy = jsonHierarchy[keysData ];
}
return jsonHierarchy;
};
Может кто-нибудь, пожалуйста, помогите, как я могу справиться с этим?
Вы получаете тот результат, потому что вы используете '.length' собственности на ключ в качестве строкового типа данных. Вы должны сделать свой 'keysInput' в массив –