我試圖從嵌套的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