javascript - 从 JSON 对象生成 CSV 文件
问题描述
都在标题中,我想从这个 Ajax 请求中获取的 JSON 对象生成一个 CSV 文件,
我得到的 JSON 代表表单中的所有记录:
我已经有了一个适用于一个字段值的东西,一个单一的记录(这里的 0):
<!DOCTYPE html>
<meta charset="utf-8"/>
<html>
<head>
<title>This is Website Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js" type="text/javascript"></script>
<script src="../FileSaver.js"></script>
<script>
var formId = 566091
// Définition des paramètres de la requête HTTP
var settings = {
"async": true,
"crossDomain": true,
"url": "https://www.kizeoforms.com/rest/v3/forms/"+formId+"/data/readnew",
"method": "GET",
"headers": {
"content-type": "application/json",
"Authorization": "******",
}
}
// Envoi de la requête et affichage en console de la réponse
$.ajax(settings).done(function (response) {
console.log(response);
var ssa3 = [];
for (var i = 0 ; i <= response.data.length; i++) {
ssa3.push(response.data[i].fields.ssa_3_a_22h00.value);
}
//var ssa3 = response.data[0].fields.ssa_3_a_22h00.value;
var blob = new Blob([ssa3], {type: "application/csv;charset=utf-8"});
saveAs(blob, "ssa3.csv");
});
</script>
</head>
</html>
我现在想为所有记录设置此字段值,我试图将其推入表中,但控制台告诉我“我未定义”
$.ajax(settings).done(function (response) {
console.log(response);
var ssa3 = [];
for (var i = 0 ; i <= response.data.length; i++) {
ssa3.push(response.data[i].fields.ssa_3_a_22h00.value);
}
var blob = new Blob([ssa3], {type: "application/csv;charset=utf-8"});
saveAs(blob, "ssa3.csv");
});
解决方案
终于找到了,我用了一个forEach来浏览数据:
$.ajax(settings).done(function (response) {
console.log(response);
var ronde1n = [];
//on définit data qu'on va devoir parcourir avec un forEach
const data = response.data;
//on envoie les headers du fichiers csv
ronde1n.push("Numéro d'enregistrement,ID,Date et heure,conso SSA3");
//on parcours l'ensemble des enregistrements du formulaire Ronde 1 nuit
data.forEach(function (i) {
//on envoie les valeurs des champs qui nous intéressent pour chaque enregistrement
ronde1n.push("\r\n" + i.record_number + "," + i.id + "," + i.fields.date_et_heure.value + "," + i.fields.ssa_3_a_22h00.value);
});
//création du fichier CSV
var blob = new Blob([ronde1n], {type: "application/csv;charset=utf-8"});
saveAs(blob, "ronde1_nuit.csv");
});
推荐阅读
- firebase - 如何将数据推送到 Highchart Networkgraph 表单 firebase?
- python - 使用 boto3 的 StreamingBody.iter_lines() 遍历 S3 中的文件是否算作每行的 GET 请求?
- matlab - 以一定间距生成一定范围内的随机数
- typescript - 当键具有多种类型时,如何在构造函数中设置类型化 Map 的初始值
- netlogo - 受感染的 netlogo 模拟方法不起作用
- c# - 通过使用两个几乎相同的通用数据库访问类来强制执行 DRY
- python - PDFminer 仅在手动使 PDF 可搜索时才有效
- c - 如何在 C 中检查十六进制编码字符串中的“00”?
- c++ - 使用 std::vector 的 OpenCL 矩阵乘法
- c# - 文本叠加在另一个之上