如何使用给定的输入构建此特定的 JSON 格式

How to build this specific JSON Format with the given input

本文关键字:JSON 格式 输入 何使用 构建      更新时间:2023-09-26

我从后端收到以下JSON

目前有两个执行价格6000和7000,每个执行价格的CE和PE未平仓量值

[{
    "CE": "601650",
    "strike_pr": "6000",
    "PE": "1196350"
}, {
    "CE": "2553975",
    "strike_pr": "7000",
    "PE": "6069025"
}]

我正在尝试使用此值生成谷歌可视化条形图,如本小提琴所示

http://jsfiddle.net/7wYP2/453/

您能否请问我如何从上述 JSON 中构建以下格式的 JSON 数组

var data = google.visualization.arrayToDataTable([
        ['STRIKE_PR', 'CE', 'PE'],
        ['6000  ',  601650,   1196350],
          ['7000',  2553975,   6069025]
    ]);

你可以尝试这样的事情:

注意: 此答案假设所有对象都具有相同的属性。

@Dandavis的建议

var data = [{
    "CE": "601650",
    "strike_pr": "6000",
    "PE": "1196350"
}, {
    "PE": "6069025",
    "CE": "2553975",
    "strike_pr": "7000",
}];
var keys = Object.keys(data[0]);
var result = data.map(function(o){
  return keys.map(function(k){
    return o[k];
  });
});
result.unshift(keys);
document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");

Array.forEach + Array.push

var data = [{
    "CE": "601650",
    "strike_pr": "6000",
    "PE": "1196350"
}, {
    "CE": "2553975",
    "strike_pr": "7000",
    "PE": "6069025"
}];
var keys = Object.keys(data[0]);
var result = [];
result.push(keys);
data.forEach(function(o){
  var _tmp = [];
  keys.forEach(function(k){
    _tmp.push(o[k])
  });
  result.push(_tmp);
});
document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");

Array.map + Array.unshift

var data = [{
    "CE": "601650",
    "strike_pr": "6000",
    "PE": "1196350"
}, {
    "CE": "2553975",
    "strike_pr": "7000",
    "PE": "6069025"
}];
var keys = Object.keys(data[0]);
var result = data.map(function(o){
  var _tmp = [];
  keys.forEach(function(k){
    _tmp.push(o[k])
  });
  return _tmp;
});
result.unshift(keys);
document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");