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

http://jsfiddle.net/kej9b7j7/


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -