从服务器响应构造Javascript数组

时间:2011-04-15 11:17:47

标签: javascript ajax jquery

我从我的AJAX调用

中获取服务器内的数据
{jobs:[{Dater:"2010-01-01",INCPU:"1",OUTCPU:"1"},{Dater:"2010-01-02",INCPU:"2",O
UTCPU:"2"},{Dater:"2010-01-03",INCPU:"3",OUTCPU:"3"}]

这是我的AJAX电话

在这个调用中,我试图在JSP中构建这种类型的数组

var MyData = [{date:'2010-01-01',INCPU:"1",OUTCPU:"1"},{date:'2010-01-01',INCPU:"1",OUTCPU:"1"}];

 ****var constructarray =[];****    

 jQuery.ajax({ 
       url: '/HumblFin/Serv', 
       success: function(data) { 
          drawChart(data);
 },

function drawChart(data)
{    
 for(var i = 0 ; i<=data.jobs.length ; i++)
 {
   constructarray .push(data.jobs.Dater[i]);  
   constructarray .push(data.jobs.INCPU[i]);  
   constructarray .push(data.jobs.OUTCPU[i]);  
 }
}

我已经提醒了我的构造阵列 但不幸的是只打印,,,,,,,,,,,,,,,

请有人帮帮我。

3 个答案:

答案 0 :(得分:0)

我不知道JSP的语法,但你需要的是将JSON转换为类。它将JSON反序列化为系统对象
JSP中必须有一些支持才能使用JSON,或者您可以使用开放库。例如

http://json-taglib.sourceforge.net/

另请查看此示例
http://www.roseindia.net/tutorials/json/json-jsp-example.shtml

答案 1 :(得分:0)

不确定这是否是拼写错误,但您说回来的JSON数据字符串格式不正确。你错过了一个结尾“}”。它应该如下所示:

{jobs:[{Dater:"2010-01-01",INCPU:"1",OUTCPU:"1"},{Dater:"2010-01-02",INCPU:"2",OUTCPU:"2"},{Dater:"2010-01-03",INCPU:"3",OUTCPU:"3"}]}

其次,您应该使用data.jobs[i].Dater代替data.jobs.Dater[i]

答案 2 :(得分:0)

尝试使用:

for(var i = 0 ; i<=data.jobs.length ; i++)
{
  constructarray .push(data.jobs[i].Dater);  
  constructarray .push(data.jobs[i].INCPU);  
  constructarray .push(data.jobs[i].OUTCPU);  
}