0

Can any one help me to convert the below array of JSON using javascript or jquery

[ 
[{"day1":10,"day2":154,"day3":24,"day4":48,"day5":154,"day6":48,"day7":154,"name":"Packet"}],
[{"day1":10,"day2":154,"day3":24,"day4":48,"day5":154,"day6":48,"day7":154,"name":"car"}],
[{"day1":10,"day2":154,"day3":24,"day4":48,"day5":154,"day6":48,"day7":154,"name":"bike"}]
]

into

[
{"name":"Packet","date":"Day1","value":10},
{"name":"Packet","date":"Day2","value":154},
{"name":"Packet","date":"Day3","value":24},
{"name":"Packet","date":"Day4","value":48},
{"name":"Packet","date":"Day5","value":154},
{"name":"Packet","date":"Day6","value":48},
{"name":"Packet","date":"Day7","value":154},

{"name":"car","date":"Day1","value":10},
{"name":"car","date":"Day2","value":154},
{"name":"car","date":"Day3","value":24},
{"name":"car","date":"Day4","value":48},
{"name":"car","date":"Day5","value":154},
{"name":"car","date":"Day6","value":48},

{"name":"bike","date":"Day1","value":10},
{"name":"bike","date":"Day2","value":154},
{"name":"bike","date":"Day3","value":24},
{"name":"bike","date":"Day4","value":48},
{"name":"bike","date":"Day5","value":154},
{"name":"bike","date":"Day6","value":48},]`

please provide any help or any example where I can get some hint....as I am new to JS.

1
  • you need to implement your own method in Javascript or Jquery becoz its logical problem, first read array one by one and then implement your own given JSON structure. Commented Sep 21, 2016 at 12:03

2 Answers 2

1

You can do it like this.

var array = [
  [{ "day1": 10,"day2": 154,"day3": 24,"day4": 48,"day5": 154,"day6": 48,"day7": 154,"name": "Packet" }],
  [{ "day1": 10,"day2": 154,"day3": 24,"day4": 48,"day5": 154,"day6": 48,"day7": 154,"name": "car" }],
  [{ "day1": 10,"day2": 154,"day3": 24,"day4": 48,"day5": 154,"day6": 48,"day7": 154,"name": "bike" }]
];

function convert(array) {
  if (!array instanceof Array && array.length === 0) {
    return array;
  }
  
  var result = [];
  for (var i = 0; i < array.length; i++) {
    var item = array[i][0];
    var name = item.name;
    
    for (var key in item) {
      if (key === 'name') {
      	continue;
      }
      
      result.push({ "name": name,"date": key,"value": item[key]});
    }
  }
  
  return result;
}

var result = convert(array);
console.log(result);

Sign up to request clarification or add additional context in comments.

Comments

0
var inp = [ 
          [{"day1":10,"day2":154,"day3":24,"day4":48,"day5":154,"day6":48,"day7":154,"name":"Packet"}],
          [{"day1":10,"day2":154,"day3":24,"day4":48,"day5":154,"day6":48,"day7":154,"name":"car"}],
          [{"day1":10,"day2":154,"day3":24,"day4":48,"day5":154,"day6":48,"day7":154,"name":"bike"}]
          ];

var res=[];
inp.map(x=>x.map(y=>{for(z in y) {if (z!='name')  res.push({"name":y.name, "date":z,"value":y[z] });}}));
JSON.stringify(inp);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.