【发布时间】:2013-08-19 10:22:41
【问题描述】:
我正在尝试从嵌套的 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循环中的return在找到值时实际上并没有退出循环。
我做错了什么?提前致谢。
【问题讨论】:
-
我觉得应该是name.lname.familyname 试一试。 @Sparky
-
感谢@Kira,这种访问方式会起作用,但我正在尝试更多动态方法。
标签: javascript json