0

私はウィキペディアの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:Unexpectednumber'.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 に答える