Restructure JSON

javascript, jquery, json

Solution

I can only assume that you want this:

var arr = JSON.parse(response); // or something like that (assuming valid JSON)
                                // or just assign the array literal

var result = {};
for (var i=0; i<arr.length; i++) {
    var date = arr[i].date,
        sales = arr[i].sales;
    if (date in result)
        result[date].push(sales);
    else
        result[date] = [sales];
}

Problem

I now have a JSON response from the server like, but i want to restructure it, according to dates. for e.g i now have ``` { "items": [ { "A": [ { "name": "a", "date": "2/10/2010", "sales": "100" }, { "name": "b", "date": "6/10/2010", "sales": "400" } ], "B": [ { "name": "c", "date": "2/10/2010", "sales": "1000" }, { "name": "d", "date": "6/10/2010", "sales": "400" } ] }, { "C": [ { "name": "a", "date": "10/10/2010", "sales": "100" }, { "name": "b", "date": "6/10/2010", "sales": "100" } ], "D": [ { "name": "c", "date": "2/10/2010", "sales": "300" }, { "name": "c", "date": "2/10/2010", "sales": "1100" } ] } ] } ``` but now i want to restructure by dates, for a particular day need to know all the sales to have like, ``` { "date1" : [sales, sales, sales], "date2" : [sales, sales], "date3" : [sales] } ``` how can this be done?

Original source