gpt4 book ai didi

javascript - 在 Javascript 中重新格式化 JSON

转载 作者:行者123 更新时间:2023-11-30 08:23:01 24 4
gpt4 key购买 nike

尝试重新格式化 API 查询的响应,但遇到问题。尝试了 map 但没有成功。

main.data.daily(symbol, 'main', 'json').then(data=> ....);

当前响应格式:

'data':{
'2018-03-13':
{ '1. open': '32.8500',
'2. high': '33.3600',
'3. low': '32.8500',
'4. close': '33.1400',
'5. volume': '834894'
},
...
}

这是所需的格式:

[{ 
date: '2018-03-13'
open: 32.85,
high: 33.36,
low: 33.85,
close: 33.14,
volume: 855448
},
...
]

尝试了以下但没有雪茄:

data.map(val, i, data => {
return {
date: i,
open: val['1. open'],
high: val['2. high'],
low: val['3. low'],
close: val['4. close'],
volume: val['5. volume']
}
});

var data = {
'2018-03-13': {
'1. open': '32.8500',
'2. high': '33.3600',
'3. low': '32.8500',
'4. close': '33.1400',
'5. volume': '834894'
},
}

data = data.map(val, i, data => {
return {
date: i,
open: val['1. open'],
high: val['2. high'],
low: val['3. low'],
close: val['4. close'],
volume: val['5. volume']
}
});
console.log(data)

最佳答案

您可以使用 Object.entries 重新格式化您的对象和 Object.assign .要获得没有前导数字和点的新 key ,您可以采用正则表达式来分隔新 key 的所需部分。

var data = { '2018-03-13': { '1. open': '32.8500', '2. high': '33.3600', '3. low': '32.8500', '4. close': '33.1400', '5. volume': '834894' }, '2018-03-12': { '1. open': '32.3900', '2. high': '32.8050', '3. low': '32.2800', '4. close': '32.6800', '5. volume': '855448' } },
result = Object
.entries(data)
.map(([date, object]) => Object.assign(
{ date },
...Object.entries(object).map(([k, v]) => ({ [k.match(/\w+$/)]: +v })))
);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 在 Javascript 中重新格式化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50344779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com