可以PapaParse" unarse"功能是否有不同的标题?

时间:2017-02-22 17:01:41

标签: 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

本质上它会解析整个数据集,并填充每个标头(如果存在),这就是我想要的。但是,如果我使用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 记录中的标题,并忽略随后发生的任何记录。

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

由于

1 个答案:

答案 0 :(得分:0)

我认为你可以明确地将字段传递给unparse,就像这样:

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