javascript - PapaParse "unparse"函数可以使用不同的 header 吗?

标签 javascript csv papaparse

我正在尝试使用 PapaParse 库 ( http://papaparse.com/ ) 将 JavaScript 对象/JSON 转换为 CSV 文件。特别是在我的例子中,每条记录可能有不同的字段。我希望生成的 CSV 输出是给定记录的所有字段的集合。取下面的 JSON:-

[

 {"name":"ken",
  "age":"35"},

 {"name":"joe",
  "age":"37",
  "shoe_size":"12"},

 {"name":"fred",
  "age":"26",
  "favourite_colour":"blue"}

]

你会看到“fred”有一个“favourite_colour”,“joe”有一个“shoe_size”,他们都有名字和年龄。

如果我将该代码粘贴到此处:https://konklone.io/json/

我得到这样的东西:-

name    age shoe_size   favourite_colour
ken     35      
joe     37  12  
fred    26              blue

本质上,它解析整个数据集,并填充每个 header (如果存在),这正是我想要的。但是,如果我使用 PapaParse 函数:-

Papa.unparse('[{"name":"ken","age":"35"},{"name":"joe","age":"37","shoe_size":"12"},{"name":"fred","age":"26","favourite_colour":"blue"}]',{type:"text/csv;charset=utf-8"});

我得到:-

name    age
ken     35
joe     37
fred    26

因此,Papa.unparse() 函数似乎只记录了第一个 记录中的 header ,而忽略了随后发生的任何记录。

我知道理论上我可以通过确保第一条记录包含每个字段来捏造它,即使它是空白的,但想知道是否有一个功能/选项可以让它以这种方式工作没有这样的说服

谢谢

最佳答案

我认为您可以显式传递字段以进行解析,如下所示:

var csv = Papa.unparse({
fields: ["name", "age", "shoe_size", "favourite_color"],
data: [

 {"name":"ken",
  "age":"35"},

 {"name":"joe",
  "age":"37",
  "shoe_size":"12"},

 {"name":"fred",
  "age":"26",
  "favourite_colour":"blue"}
  ]
});

关于javascript - PapaParse "unparse"函数可以使用不同的 header 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42397815/

相关文章:

javascript - PapaParse 在读取 CSV 时返回 undefined

javascript - Django 模板变量在脚本标签中无法识别,但在常规 h1 标签中可识别。是什么原因造成的?

javascript - AWS Lambda 进程 Stripe 费用

javascript - 如何在选择下拉列表值后单击自动提交按钮

javascript - 如何使用javascript将html中的水印添加到pdf导出器

javascript - 在 D3.js 中对大型 CSV 进行排序

javascript - 从 .csv 文件读取的内容有时不会在页面加载时显示

node.js - Google Cloud Function 无法识别 Papaparse 5.0 依赖项

java - 在使用 Super CSV 时,我可以获得验证错误的列号吗?

python - 尝试将 csv 文件转换为更干净的 csv! python 和 Stack 新手