【问题标题】:Generate a CSV file from a JSON object从 JSON 对象生成 CSV 文件
【发布时间】:2020-02-11 14:45:03
【问题描述】:

都在标题中,我想从这个 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");
                });

【问题讨论】:

  • 我们可以看一个 JSON 的例子吗?到目前为止,您尝试过什么?
  • 嗨,JS1 :-) 你可以添加上一个相反的 json 示例:'{\r\n "items": [\r\n "label|label", “test1|test4”、“test2|test5”、“test3|test6”\r\n ]\r\n}'。这不是和你这里的初始 json 相似吗?
  • 我想我应该添加如何将内容放入文件并保存或下载。你打算如何处理结果?
  • "content-type": "application/json", — 您正在发出 GET 请求。请求正文中没有描述类型的内容。

标签: javascript jquery html ajax csv


【解决方案1】:

终于找到了,我用了一个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");

            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 2017-11-07
    • 2015-05-17
    • 2011-08-29
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多