PapaParse "unparse" 函数可以使用不同的 headers 吗?

Can the PapaParse "unparse" function work with varying headers?

我正在尝试使用 PapaParse 库 (http://papaparse.com/) 将 JavaScript objects/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() 函数只注意到 first 记录中的 headers,并忽略任何记录随后发生。

我知道理论上我可以通过确保第一条记录有每个字段来捏造它,即使它是空白的,但想知道是否有 feature/option如果没有这样的劝说?

,这将使它以这种方式工作

谢谢

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

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"}
  ]
});