我向我的应用程序中的控制器提交了一个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获取返回的JSON对象的值.
返回数据
data: "[{"userID":"35047","testID":"5","subject":"1"..and more}]
Run Code Online (Sandbox Code Playgroud)
在javascript中,我如何遍历userID/testID和值...等.
谢谢您的帮助