在Javascript中重新格式化JSON
试图重新格式化来自API查询的响应,但遇到问题。尝试映射,但不起作用在Javascript中重新格式化JSON,javascript,Javascript,试图重新格式化来自API查询的响应,但遇到问题。尝试映射,但不起作用 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', '
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']
}
});
风险值数据={
'2018-03-13': {
“1.开放”:“32.8500”,
“2.高”:“33.3600”,
“3.低”:“32.8500”,
“4.关闭”:“33.1400”,
“5.卷”:“834894”
},
}
data=data.mapval,i,data=>{
返回{
日期:我,
打开:val['1.open'],
高:val['2.high'],
低:val['3.low'],
关闭:val['4.close'],
卷:val['5.卷']
}
};
logdata您可以使用和重新格式化对象。要获得一个没有前导数字和点的新密钥,可以使用正则表达式来分隔新密钥所需的部分 var数据={'2018-03-13':{'1.开放':'32.8500','2.高':'33.3600','3.低':'32.8500','4.关闭':'33.1400','5.卷':'834894'},'2018-03-12':{'1.开放':'32.3900','2.高':'32.8050','3.低':'32.2800','4.关闭':'32.6800','5.卷':'855448'}, 结果=对象 .entriesdata .map[日期,对象]=>object.assign {date}, …Object.entriesobject.map[k,v]=>{[k.match/\w+$/]:+v} ; console.logresult;
.作为控制台包装{max height:100%!important;top:0;}您可以使用和重新格式化对象。要获得一个没有前导数字和点的新密钥,可以使用正则表达式来分隔新密钥所需的部分 var数据={'2018-03-13':{'1.开放':'32.8500','2.高':'33.3600','3.低':'32.8500','4.关闭':'33.1400','5.卷':'834894'},'2018-03-12':{'1.开放':'32.3900','2.高':'32.8050','3.低':'32.2800','4.关闭':'32.6800','5.卷':'855448'}, 结果=对象 .entriesdata .map[日期,对象]=>object.assign {date}, …Object.entriesobject.map[k,v]=>{[k.match/\w+$/]:+v} ; console.logresult;
.作为控制台包装器{最大高度:100%!重要;顶部:0;}到目前为止您尝试过什么吗?StackOverflow不是一个免费的代码编写服务,它希望您能够这样做。请更新您的问题,以显示您已经尝试过的内容,并显示您在某个问题中面临的具体问题。有关更多信息,请参阅,并注意:这个问题与Promise无关您不想重新格式化JSON。您正在尝试基于对象创建对象数组。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。@JaromandaX-或者,到此为止。:-或者@约翰多万-请不要标记垃圾邮件。只需使用与问题真正相关的标记。添加了我试图使用的代码。到目前为止,您尝试过什么吗?StackOverflow不是一个免费的代码编写服务,它希望您能够这样做。请更新您的问题,以显示您已经尝试过的内容,并显示您在某个问题中面临的具体问题。有关更多信息,请参阅,并注意:这个问题与Promise无关您不想重新格式化JSON。您正在尝试基于对象创建对象数组。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。@JaromandaX-或者,到此为止。:-或者@约翰多万-请不要标记垃圾邮件。只需使用与问题真正相关的标记。添加了我尝试使用的代码。非常类似,我使用了替换而不是匹配:p@JaromandaX,也许替换更好,因为如果没有,它也能工作。我从未见过。。。在对象之前,这是关于什么的?在这个地方,一个iterable作为函数的参数展开。工作很好,但是日期的顺序是相反的。可以反转吗?非常类似,我使用替换而不是匹配:p@JaromandaX,也许替换更好,因为如果没有,它也能工作。我从未见过。。。在对象之前,这是关于什么的?在这个地方,一个iterable作为函数的参数展开。工作很好,但是日期的顺序是相反的。有可能逆转吗?