我正在玩维基百科json,所以......我有这个对象:
Object {query: Object}
query: Object
pages: Object
869994: Object
ns: 0
pageid: 869994
revisions: Array[1]
title // <- I need you baby
使用id检索(在本例中为869994)。现在我想检索标题,所以我应该使用
$.getJSON(myIdUrl, function(data) {
var obj = 'data.query.pages.' + id + '.title';
console.log(obj); // it prints data.query.pages.869994.title should be right..
var title = eval(obj); // now I want to assign obj title value to my variable
// something else…
});
我收到错误,“SyntaxError:意外号码'.869994'”......
我认为我误解了eval()函数,或者只是错误的路径来检索obj数据......
建议?谢谢!
答案 0 :(得分:2)
改变这个:
var obj = 'data.query.pages.' + id + '.title';
到此:
var obj = 'data.query.pages["' + id + '"].title';
原因是解析器很混乱;当你取消引用一个对象时,它期望一个标识符,而不是一个文字数字。
var x = {};
x.5 = "test"; // <- notice this seems very unnatural