Поскольку CSV - это просто текст, решение заключается в использовании метода response.text()
API fetch()
.
https://developer.mozilla.org/en-US/docs/Web/API/Body/text
Как только текст на борту, это так же просто, как разбор CSV из файла. Если вы хотите, чтобы объекты выводились, обязательно, чтобы заголовки были включены в CSV (который у вас).
Я включил фрагмент кода ниже. Он не будет работать на SO, потому что SO устанавливает нулевое значение источника в запросах AJAX. Поэтому я также включил ссылку на работающее решение 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);