gpt4 book ai didi

javascript - 我可以获取可读流然后转换为 JSON 客户端吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:49 24 4
gpt4 key购买 nike

我希望使用 Google 表格 CSV 作为数据源。我想在客户端获取 CSV 数据,然后转换成 JSON。

我能够获取 CSV,它返回一个 ReadableStream .但是,我不确定如何正确读取该响应并将其转换为 JSON。

我找到了一个 npm package which should help convert the CSV data to JSON ,但有一点时间处理流。

示例:https://jsfiddle.net/21jeq1h5/3/

谁能指出我使用 ReadableStream 的正确方向?

最佳答案

由于 CSV 只是文本,解决方案是使用 fetch() API 的 response.text() 方法。

https://developer.mozilla.org/en-US/docs/Web/API/Body/text

一旦文本载入,就像从文件中解析出 CSV 文件一样简单。如果您希望将对象作为输出,则必须将 header 包含在 CSV 文件中(您的文件是)。

我在下面包含了代码片段。它不会在 SO 上运行,因为 SO 在 AJAX 请求上将原点设置为 null。因此,我还提供了一个指向有效的 Codepen 解决方案的链接。

fetch('https://docs.google.com/spreadsheets/d/e/KEY&single=true&output=csv')
.then(response => response.text())
.then(transform);

function transform(str) {
let data = str.split('\n').map(i=>i.split(','));
let headers = data.shift();
let output = data.map(d=>{obj = {};headers.map((h,i)=>obj[headers[i]] = d[i]);return obj;});
console.log(output);
}

https://codepen.io/randycasburn/pen/xjzzvW?editors=0012

编辑

我应该补充一点,如果你真的想要在 JSON 字符串中(根据你的问题),你可以运行

json = JSON.stringify(output);

关于javascript - 我可以获取可读流然后转换为 JSON 客户端吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50320931/

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