相关疑难解决方法(0)

多维数组和jQuery的getJSON

我向我的应用程序中的控制器提交了一个getJSON请求,该控制器返回带有2个"应用程序"的有效JSON.我知道这个事实就好像我将alert语句移动到jQuery的每个函数中它会给我预期的结果.

我试图将这些数据存储在一个多维数组中,以便以后与extJS'菜单控件一起使用.

码:

Ext.onReady(function() {
    var applicationList = [];
    jQuery.getJSON('index.php/applications', function(data) {
        jQuery.each(data.applications, function (i, app) {
            applicationList[i] = [];
            applicationList[i]['text'] = app['title'];
            applicationList[i]['id'] = app['slug'];
        });
    });
    alert(applicationList[0]['text']);

    var applicationMenu = Ext.menu.Menu({
        items: applicationList
    });
});
Run Code Online (Sandbox Code Playgroud)

JSON响应:

{"applications":[{"slug":"test","title":"Test"},{"slug":"hardware","title":"Hardware"}]}
Run Code Online (Sandbox Code Playgroud)

预期结果:

测试

实际结果(来自Firebug):

applicationList [0]未定义

如果我用alert()以下代码替换上面的代码,我会得到一个带有"remove"文本的警告窗口:

for (p in applicationList) {
    alert(p);
}
Run Code Online (Sandbox Code Playgroud)

现在,我的想法是JSON请求没有及时完成,alert()因此我将使用命名回调函数来确保请求已完成:

var data;
jQuery.getJSON('index.php/applications', get_applications(data));

function get_applications(data) {
    jQuery.each(data.applications, function (i, app) {
        applicationList[i] = [];
        applicationList[i]['text'] = app['title'];
        applicationList[i]['id'] = app['slug'];
    });
}; …
Run Code Online (Sandbox Code Playgroud)

javascript jquery json

2
推荐指数
1
解决办法
3万
查看次数

如何解析返回的JSON对象

可能重复:
如何将json字符串解析为javascript对象

我试图通过使用JavaScript获取返回的JSON对象的值.

返回数据

data: "[{"userID":"35047","testID":"5","subject":"1"..and more}]
Run Code Online (Sandbox Code Playgroud)

在javascript中,我如何遍历userID/testID和值...等.

谢谢您的帮助

javascript ajax jquery

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

javascript ×2

jquery ×2

ajax ×1

json ×1