javascript - 如何在字符串上使用 eval() 获取对象值

标签 javascript json object

我正在使用维基百科 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'”...

我想我误解了 eval() 函数,或者只是制定了错误的路径来检索 obj 数据......

建议?谢谢!

最佳答案

更改此:

var obj = 'data.query.pages.' + id + '.title';

对此:

var obj = 'data.query.pages["' + id + '"].title';

原因是解析器困惑;当您取消引用一个对象时,它需要一个标识符,而不是一个文字数字。

var x = {};
x.5 = "test"; // <- notice this seems very unnatural

关于javascript - 如何在字符串上使用 eval() 获取对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12655633/

相关文章:

javascript - 如何使用 Jquery 和 Json API 通过谷歌地图 API 使用坐标显示城市名称?

Javascript 循环通过 JSON 对象数组

javascript - 在 Node.js 中使用函数创建对象

java - 如何获取 ArrayList 中存储对象的属性值

javascript - 迭代元素列表并根据内部文本删除它们上的光标样式

javascript - 在 Javascript 集中查找最大值/最小值

javascript - 如何使用 js 数组,查找和分组项目?

python - 从 html &lt;script&gt; 中提取 JSON 对象

mysql - 手动刷新导致仅显示 JSON

javascript - 如何在 IE 11 中动态地将 flash-object 添加到 html 中?