2014-12-29 2 views
0

Мне нужно разобраться в моих данных json по дате, месяцу, неделе и дню. Я использую REST API, и нет возможности получить сгруппированные данные json. мне нужно группировать данные по месяцам, неделям и дням: поэтому объект каскадные JSONданные группы json с использованием даты времени

год: {месяц: {day1: {data1, data2 ...}, day2: {..} }, month2: {..}},

любые другие идеи.

это моя первая функция, чтобы получить данные:

getListItems(_spPageContextInfo.webAbsoluteUrl, "Activites", "", FillFormat_JSONDate, ""); 


function getListItems(url, listname, query, complete, failure) { 

    // Executing our items via an ajax request 
    $.ajax({ 
     url: url + "/_api/web/lists/getbytitle('" + listname + "')/items" + query, 
     method: "GET", 
     headers: { "Accept": "application/json; odata=verbose" }, 
     success: function (data) { 
      complete(data); // Returns JSON collection of the results 

     }, 
     error: function (data) { 
      //failure(data); 
      alert("failure"); 
     } 
    }); 

} 


function FillFormat_JSONDate(dataitems) { 

    var jsonStr = JSON.stringify(dataitems.d.results); 
    var jsonPars = JSON.parse(jsonStr); 
    //map data from SPList to Array 
    var jsonYearformat = {}; 
    var SPListItemP = $.map(jsonPars, function (item) { 

     var date = new Date(item.Created); 
     // push data into jsonYearformat 

     return false; 
    }); 

} 
+0

Что первые две строки этой функции выполнять? Похоже, вы кодируете его в строку JSON, а затем сразу расшифровываете его ... почему? – amphetamachine

+0

Каков формат данных? это формат таблицы? – agentpx

+0

dataitems это объект json: dataitems.d.results и да его формат таблицы – Imen

ответ

0

я использовать этот код, чтобы получить группировку:

i = 0, 
    groups = {}; 
    var year; 
    var day; 
    var month; 
    var SPListItemP = $.map(jsonPars, function (item) { 

     elt = new Date(item.IPS_START); 
      year = elt.getFullYear(); 
      month = elt.getMonth() + 1; 
      day = elt.getDate(); 

      groups[year] || (groups[year] = {}); // exists OR create {} 
      groups[year][month] || (groups[year][month] = []); 
      groups[year][month][day] || (groups[year][month][day] = []); // exists OR create [] 
      groups[year][month][day].push(item); 

     return false; 
    }); 
Смежные вопросы