【发布时间】:2019-07-03 21:34:04
【问题描述】:
现在我有一个嵌套的 JSON 树对象 (this.props.holdinginfo) 从后端发送到前端,我正在尝试在网页上添加一个导出按钮,以便能够将 JSON 对象导出到 csv使用 react 文件。
JSON 树对象如下:
[{'holder': 'Passive', 'Position': 500.0, 'pct_shares_out': 0.5,
'Node': [{'holder': 'TD Inc.', 'Position': 300.0, 'pct_shares_out': 0.2,
'Node': [{'holder': 'TD ETF', 'Position': 400, 'pct_shares_out': 0.1},
{'holder': 'TD Fund', 'Position': 430.0, 'pct_shares_out': 0.2}]},
{'holder': 'Active', 'Position': 725.0, 'pct_shares_out': 0.1,
'Node': [{'holder': '18 Asset', 'Position': 390, 'pct_shares_out': 0.5,
'Node': [{'holder': '18 Inc.', 'Position': 190, 'pct_shares_out': 0.2},
{'holder': 'Lysander-18 Equity Fund Series A', 'Position': 19, 'pct_shares_out': 0.05}]}]}];
我希望 csv 文件遵循以下格式:
holder/position/pct_share_out
'Passive'/500.0/0.5
'TD Inc.'/300.0/0.2
'TD ETF'/400/0.1
'TD Fund'/430/0.2
'Active'/725/0.1
'18 Asset'/390/0.5
'18 Inc.'/190/0.2
'Lysander-18 Equity Fund Series A'/19/0.05
我现在正在做的是在组件的js文件中添加一个按钮:
<Button variant="contained"
size="small"
onClick={this.handleExport}>
<SaveIcon label="Export" />
Export
</Button>
调用handleExport将表格导出为csv文件:
handleExport = () => {
let csv = Papa.unparse(this.props.holdinginfo);
console.log(csv);
}
但是由于this.props.holdinginfo是嵌套树对象,所以console.log的输出是""[object Object],[object Object],[object Object],[object Object],[object Object], [对象对象],[对象对象]...."
我的问题 - 1- 如何将嵌套树 JSON 转换为 csv? 2-当用户点击按钮时如何下载该csv?
感谢您的帮助!!
【问题讨论】:
-
嘿,因为我是新来的反应,你有任何示例代码我可以看看吗?
-
真的跟react没什么关系,纯JavaScript而已。我会尽快建立一个例子
-
参见 [stackoverflow.com/questions/8847766/…]。我认为它会对你有所帮助,除非你坚持使用 React。
-
你没有规定你正在使用的 javascript 框架......你会问什么库将 json 转换为 csv......或者你自己创建库并添加到你的简历中
标签: javascript json reactjs react-redux