jquery - JSON filter using javascript -
i have json object contains duplicated data. these data can change given structure of need organize json based on country
please find original json
{ "datalist": [ { "country": "aus", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "aus", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits ": 32190 }, { "country": "aus", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "aus", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "us", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "us", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "us", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "us", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "us", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "canada", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "canada", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "canada", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "canada", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "canada", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 }, { "country": "canada", "cart": 1610950, "orders": 35670, "viewed": 966570, "visits": 32190 } ] }
updated json
i need organize these json more meaningful forms such
{ "datalist": [ { "country" : "aus", "data" : [ { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950, "orders" : 35670, "viewed" : 966570, "visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 } ] }, { "country" : "canada", "data" : [ { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 } ] }, { "country" : "us", "data" : [ { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 }, { "cart" : 1610950,"orders" : 35670,"viewed" : 966570,"visits" : 32190 } ] } ] }
is there anyway convert above json 1 below using javascript or jquery dynamically have below code what map 2 different array , convert key value pair. think need to expanded.
$.formattojson = function(datatest) { var array = {}; var list = {}; list.dataset = []; var len = datatest.columnheaders.length; var rows = datatest.rows.length; // log("column length : "+len); // log("row length : "+rows); var j = 0; while (j != rows) { var = 0; var array = {}; while (i != len) { var name = datatest.columnheaders[i].name; var pair = datatest.rows[j][i]; // log( name + " : "+pair); array[name] = pair; += 1; } list.dataset.push(array); j += 1; } /*log(list);*/ return list; return this; };
var formateddata = new array(); $(data.datalist).each(function(){ var currentdata = this; var detail = {"cart": currentdata.cart, "orders": currentdata.orders, "viewed": currentdata.viewed, "visits": currentdata.visits}; var newdata = jquery.grep(formateddata,function(a){ return a.country == currentdata.country; }); if(newdata.length==0){ newdata = {country: this.country, data: [detail]}; formateddata.push(newdata); } else{ newdata[0].data.push(detail); } }); console.log(formateddata);
Comments
Post a Comment