Javascript 转置JSON数据

Javascript 转置JSON数据,javascript,json,sapui5,transpose,Javascript,Json,Sapui5,Transpose,我知道这上面有线程,但我不明白,可能需要关于json文件的帮助。我想将json绑定到我的一个SAPUI5控件,但我没有转换它 问题是,我的数据已经在前端,所以我不想再进行第二次后端调用,我需要转换我的json数据 这是我得到的,专栏是Mon01。。等等 Mon01 Mon02 Mon03 Mon04 0 03/2015 04/2015 05/2015 06/2015 1 1 3 5 21 2 2 4 6

我知道这上面有线程,但我不明白,可能需要关于json文件的帮助。我想将json绑定到我的一个SAPUI5控件,但我没有转换它

问题是,我的数据已经在前端,所以我不想再进行第二次后端调用,我需要转换我的json数据

这是我得到的,专栏是Mon01。。等等

    Mon01   Mon02   Mon03   Mon04
0   03/2015 04/2015 05/2015 06/2015
1   1       3       5       21
2   2       4       6       22
3   10      11     12       23
这就是我想要的:

    Mon01   Mon02   Mon03   Mon04
0   03/2015 1       2       10
1   04/2015 3       4       11
2   05/2015 5       6       12
3   06/2015 21      22      23
d : 
   [
      0: {
         Mon01: "03/2015",
         Mon02: "1,0",
         Mon03: "2,0",
         Mon04: "3,0",
         Mon05: "",
         Mon06: "",
     },
      1: {
         Mon01: "04/2015",
         Mon02: "3,0",
         Mon03: "4,0",
         Mon04: "11,0",
         Mon05: "",
         Mon06: "",
 },
      2: {
         Mon01: "05/2015",
         Mon02: "5,0",
         Mon03: "6,0",
         Mon04: "12,0",
         Mon05: "",
         Mon06: "",
 },
      length: 3
   ]
或者在JSON中,我得到了:

d : 
   [
      0: {
         Mon01: "03/2015",
         Mon02: "04/2015",
         Mon03: "05/2015",
      },
      1: {
         Mon01: "1,0",
         Mon02: "3,0",
         Mon03: "5,0",
 },
      2: {
         Mon01: "2,0",
         Mon02: "4,0",
         Mon03: "6,0",
         Mon04: "",
         Mon05: "",
         Mon06: "",
 },
      3: {
         Mon01: "10,0",
         Mon02: "11,0",
         Mon03: "12,0",
         Mon04: "",
         Mon05: "",
         Mon06: "",
 },
      length: 3
   ]
在JSON中,我想要的是:

    Mon01   Mon02   Mon03   Mon04
0   03/2015 1       2       10
1   04/2015 3       4       11
2   05/2015 5       6       12
3   06/2015 21      22      23
d : 
   [
      0: {
         Mon01: "03/2015",
         Mon02: "1,0",
         Mon03: "2,0",
         Mon04: "3,0",
         Mon05: "",
         Mon06: "",
     },
      1: {
         Mon01: "04/2015",
         Mon02: "3,0",
         Mon03: "4,0",
         Mon04: "11,0",
         Mon05: "",
         Mon06: "",
 },
      2: {
         Mon01: "05/2015",
         Mon02: "5,0",
         Mon03: "6,0",
         Mon04: "12,0",
         Mon05: "",
         Mon06: "",
 },
      length: 3
   ]
我所做的不是最好的方法(但有效)移动每一行的单一方法:

transpose : function(oTreeAll) {

    var oTreeNew = new Array();
    var oTreeSingle = {};

oTreeSingle.Mon01 = oTreeAll[0].Mon01.replace(',', '.');
oTreeSingle.Mon02 = oTreeAll[1].Mon01.replace(',', '.');
oTreeSingle.Mon03 = oTreeAll[2].Mon01.replace(',', '.');
oTreeSingle.Mon04 = oTreeAll[3].Mon01.replace(',', '.');
oTreeNew.push(oTreeSingle);

var oTreeSingle1 = {};
oTreeSingle1.Mon01 = oTreeAll[0].Mon02.replace(',', '.');
oTreeSingle1.Mon02 = oTreeAll[1].Mon02.replace(',', '.');
oTreeSingle1.Mon03 = oTreeAll[2].Mon02.replace(',', '.');
oTreeSingle1.Mon04 = oTreeAll[3].Mon02.replace(',', '.');
oTreeNew.push(oTreeSingle1);

var oTreeSingle2 = {};
oTreeSingle2.Mon01 = oTreeAll[0].Mon03.replace(',', '.');
oTreeSingle2.Mon02 = oTreeAll[1].Mon03.replace(',', '.');
oTreeSingle2.Mon03 = oTreeAll[2].Mon03.replace(',', '.');
oTreeSingle2.Mon04 = oTreeAll[3].Mon03.replace(',', '.');
oTreeNew.push(oTreeSingle2);

var data = {
    "d" : {
        "results" : oTreeNew,
    }
};

    return data;
},
你会怎么做?我已经读了很多关于map函数的书,但是我不了解它的工作方式或者如何使它适应我的json,有人能帮我吗?非常感谢


感谢Shibaji Chakraborty,我得到了json的解决方案:
转置:函数(oTreeAll){
var键=[];
var i=0;
for(oTreeAll[i]中的var键){
按键。按(键);
}
控制台日志(键);
var newObj={
d:[]
};
newObj['length']=oTreeAll.length;
for(var k=0;k
请查找以下代码:

var data = {d : 
[
  {
     Mon01: "03/2015",
     Mon02: "04/2015",
     Mon03: "05/2015",
  },
  {
     Mon01: "1,0",
     Mon02: "3,0",
     Mon03: "5,0",
  },
  {
     Mon01: "2,0",
     Mon02: "4,0",
     Mon03: "6,0",
     Mon04: "",
     Mon05: "",
     Mon06: "",
  },
  {
     Mon01: "10,0",
     Mon02: "11,0",
     Mon03: "12,0",
     Mon04: "",
     Mon05: "",
     Mon06: "",
}
],
        length: 3};

//console.log(data.d[0]);
var keys = [];
for(var key in data.d[data.length]){
   //console.log(key);
  keys.push(key);
}

var newObj = {d:[]};
newObj['length'] = data.length;
for(var k =0;k<data.length;k++){
  var obj = {};
  for(var cnt in keys){
    obj[keys[cnt]] = "";
  }
  newObj.d.push(obj);
 }
for(var k =0;k<data.length;k++){
   //var obj = {};
  //console.log(k);
  for(var j=0;j<data.length;j++){
    newObj.d[k][keys[j]] = data.d[j][keys[k]];
  }
}
console.log(newObj);
var数据={d:
[
{
周一:“2015年3月3日”,
周一02:04/2015,
周一03:05/2015,
},
{
周一:“1,0”,
周一02:3,0,
Mon03:“5,0”,
},
{
周一:“2,0”,
周一02:4,0,
周一03:6,0,
星期一:,
星期一,
星期一,
},
{
周一:“10,0”,
周一02:11,0,
周一03:12,0,
星期一:,
星期一,
星期一,
}
],
长度:3};
//console.log(data.d[0]);
var键=[];
for(data.d[data.length]中的var键){
//控制台日志(键);
按键。按(键);
}
var newObj={d:[]};
newObj['length']=data.length;

对于(var k=0;khey Shibaji,非常接近,目前在键中有“0”,“1”,因为在我的json中有另一个级别-->d:[0:{Mon01:“03/2015”…..,您能帮我吗?