我试图从嵌套的JSON文档获取值。我写了下面的功能:从嵌套的JSON文档获取值
var jsondata = {
'name': {
'fname': 'Jack',
'lname': [{'familyName': 'Sparrow'}, {'surname': 'Captain'}]
}
};
var extracted = get_value(jsondata, 'familyName');
console.log(extracted); // null is getting printed
function get_value(dataObject, keyName) {
value = null;
for (var i in dataObject) {
if (i == keyName) {
value = dataObject[keyName];
console.log(value); // getting correct value of 'familyName' here
return value;
} else if (typeof dataObject[i] == 'object') {
get_value(dataObject[i], keyName);
}
}
return value;
}
的问题是,我打印的console.log(value);
时得到正确的值,但null
是越来越受console.log(extracted);
打印。它就像是for-in循环内的返回,实际上并没有在找到该值时退出循环。
我在做什么错?提前致谢。
我觉得应该是name.lname.familyname尝试一次。 @Sparky – Kira
谢谢@Kira,那种访问方式可行,但我正在尝试更多的动态方法。 – Sparky