首页 > 解决方案 > json数组是什么csv格式,如何转换成json数组,Nodejs

问题描述

美好的一天,我已经搜索了几个小时,但找不到我想要的结果。首先,我不知道使用以下 JSON 数组的 CSV 看起来如何。

[
  { email: "test@test.com",
    contactNo: "123456",
    meta: [
         {key: "Name", value: "Kevin XYZ", type: "string"},
         {key: "Position", value: "Chairman", type: "string"}]
  }
]

以下 json 数组的 csv 格式是什么,以及如何在 NodeJS 中将它们从 csv 转换为 json 数组。

标签: javascriptnode.jsjsoncsv

解决方案


将您的 CSV 文件想象为 Excel 工作表,其中只有列和行,因此使用您喜欢的结构,您至少需要定义这些列:

|| 电子邮件 || 联系方式 || 姓名 || 职位 ||

这 4 个是您的 CSV 需要的最基本的标题列,那么您将需要一个transformer函数来处理您想要的数据结构。

根据我的经验,我使用https://www.papaparse.com/的是 CSV 解析器,您可以查看示例并自己尝试。

在您的情况下,解析器函数将如下所示:

const parsed = await Papa.parse(csvString, {
  header: true,
  trimHeaders: true,
  skipEmptyLines: 'greedy',
  transformHeader: val => isString(val) ? trimAll(val) : val,
  transform: (val, headerName) => {
    return isString(val) ? trimAll(val) : val
  }
});

//
[
  {
    "email": "user1@user.com",
    "contactNo": "1234-5678",
    "name": "Doe",
    "position": "doctor",
  },
  {
    "email": "user2@user.com",
    "contactNo": "1234-5678",
    "name": "John",
    "position": "developer"
  },
  ...
]

干杯,


推荐阅读