0

我正在玩 wikipedia 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: Unexpected number '.869994'”...</p>

我想我误解了 eval() 函数,或者只是弄错了检索 obj 数据的路径……

建议?谢谢你!

4

1 回答 1

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
于 2012-09-29T19:07:28.013 回答