[英]How do I import Google sheets data as a usable json value?
如何将谷歌表格中的数据导入可用的 JSON 数据? 我不想只是 console.log 它或将其作为 div 元素插入。
我希望能够将从 get 请求收到的 csv 文件分配给一个变量,并将其转换为 JSON 字典。
function loadData() {
var url="https://docs.google.com/spreadsheets/d/e/2PACX-1vQ3CoW5ktyMAa8YTdQc5hrh_z7jqCURxa3kqxjZTuLGZ-067Un7uryjv1F6Yt7AXHQrz7KUJf7ZRRWl/pub?output=csv";
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status==200){
console.log(xmlhttp.response);
return xmlhttp.response;
}
};
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
const csv = loadData()
console.log(loadData())
目前,数据记录在控制台上,但我不确定如何将其转换为可用数据。
在您的情况下,如何进行以下修改?
function loadData() {
return new Promise((resolve, reject) => {
var url = "https://docs.google.com/spreadsheets/d/e/2PACX-1vQ3CoW5ktyMAa8YTdQc5hrh_z7jqCURxa3kqxjZTuLGZ-067Un7uryjv1F6Yt7AXHQrz7KUJf7ZRRWl/pub?output=csv";
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resolve(xmlhttp.response);
} else if (xmlhttp.readyState == 4 && xmlhttp.status != 200) {
reject(xmlhttp.responseText);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
xmlhttp.onerror = function () {
reject(xmlhttp.responseText);
}
});
}
async function sample() {
// Retrieve CSV data.
const csv = await loadData().catch(err => console.log(err));
if (!csv) return;
console.log(csv);
// Convert CSV to JSON data.
const [header, ...values] = csv.split("\n").map(r => r.split(","));
const json = values.map(r => r.reduce((o, c, j) => {
const v = c.trim();
o[header[j]] = isNaN(v) ? v : Number(v);
return o;
}, {}));
console.log(json)
}
sample();
console.log(csv)
的日志中看到检索到的 CSV 数据。 此外,您可以在console.log(json)
的日志中看到转换后的 JSON 值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.