【问题标题】:How can i convert this JSON object into this format?如何将此 JSON 对象转换为这种格式?
【发布时间】:2020-08-02 19:34:23
【问题描述】:

在将 JSON 对象 {Object - Object} 的数据结构更改为适用于 Re-Charts 数据结构 {Array - Object} 的格式方面,我想获得一些帮助。您能否指导解决此问题的最佳方法和最佳方法。非常感谢您抽出宝贵时间,如果我应该提供任何其他信息,请告诉我。

我要转换的 JSON 对象

{
    "Date": {
      "0": "2019-08-02",
      "1": "2019-08-05",
      "2": "2019-08-06",
      "3": "2019-08-07",
      "4": "2019-08-08",
      "5": "2019-08-09",
      "6": "2019-08-12",
      "7": "2019-08-13",
      "8": "2019-08-14",
      "9": "2019-08-15",
      "10": "2019-08-16"
},
"Open": {
      "0": 205.529999,
      "1": 197.990005,
      "2": 196.309998,
      "3": 195.410004,
      "4": 200.199997,
      "5": 201.300003,
      "6": 199.619995,
      "7": 201.020004,
      "8": 203.160004,
      "9": 203.460007,
      "10": 204.279999
},
"High": {
      "0": 206.429993,
      "1": 198.649994,
      "2": 198.070007,
      "3": 199.559998,
      "4": 203.529999,
      "5": 202.759995,
      "6": 202.050003,
      "7": 212.139999,
      "8": 206.440002,
      "9": 205.139999,
      "10": 207.160004
}
}

我想转换的格式

[{ Date: '2019-08-02', Open: 205.529999 }, { Date: '2019-08-05', Open: 197.990005}, { Date: '2019-08-06', Open: 196.309998}, {...} ]

【问题讨论】:

  • 你的问题不清楚......'Page A' uv 等来自哪里?
  • 刚刚编辑了这个问题,很抱歉不清楚!

标签: arrays json reactjs


【解决方案1】:

您可以使用日期选项的键映射来遍历这些日期:

const arrData = Object.keys(data.Date).map((value, index) => {
    return {
      name: `Page ${String.fromCharCode(index+65)}`,
        uv: data.Open[index],
        pv: data.High[index]
    };
});

或减少:

const arrData = Object.keys(data.Date).reduce((arr, value, index) => {
    arr.push({
      name: `Page ${String.fromCharCode(index+65)}`,
        uv: data.Open[index],
        pv: data.High[index],
        amt: 0 // Where ever you get this info from ;)
    })
    return arr;
}, []);

【讨论】:

  • 对不起,我的问题不是很清楚,我编辑了这个问题,希望能更清楚地说明我想做的事情。
【解决方案2】:

这是我曾经实现的:

初始化的常量

const values = Object.values(Data.default)
const dates  = values[0]
const prices = values[1] 
const arr = [];

For 循环语句(我必须使用 for 循环才能做到这一点,请回答没有 for 循环语句可以完成的其他方式。)

var i; 
var l = Object.keys(dates).
for( i=0; i < l.length; i++ ) 
{
var b = {}; 
b["Dates"] = dates[i]
b["Prices"]= prices[i]
arr.push(b); 
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    相关资源
    最近更新 更多