Построение массива Javascript из ответа сервера

#javascript #ajax #jquery

#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]);  
 }
}
  

Я вывел предупреждение о моем constructarray
Но, к сожалению, выполняется только печать ,,,,,,,,,,,,,,,

Кто-нибудь, пожалуйста, может мне помочь.

Комментарии:

1. Этот вопрос совершенно непонятен

Ответ №1:

Попробуйте использовать это:

 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);  
}
  

Ответ №2:

Я не знаю синтаксис JSP, но что вам нужно, так это преобразовать JSON в class. Это называется десериализацией JSON в системный объект.

В JSP должна быть какая-то поддержка для работы с JSON, или вы можете использовать открытые библиотеки. например

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

также проверьте этот пример
http://www.roseindia.net/tutorials/json/json-jsp-example.shtml

Комментарии:

1. Привет, спасибо за ответ, вопрос не связан с JSON. Речь идет о построении массива Javascript в указанном формате.

Ответ №3:

Не уверен, что это опечатка, но формат вашей строки данных 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] .

Комментарии:

1. Не обращайте внимания на дополнительный комментарий ‘O’, если вы видели это минуту назад, не заметили, что это было частью ‘OUTCPU’.

2. Когда я жестко запрограммирован как data.jobs [1]. В случае, если значение поступает правильно, я думаю, мне нужно проверить окончательные фигурные скобки } ` StringBuffer jobs = new StringBuffer(«{jobs:[«); while (rs.next()) { jobs.append(«{id:»» rs.getString(«id») «»,title: «» rs.getString(«создано») «»},»); } jobs.setCharAt(задания.длина() — 1, ‘]’); jobs.append(«}»); System.out.println(jobs.toString());`