Javascript Node.js将csv文件转换为json格式

Javascript Node.js将csv文件转换为json格式,javascript,arrays,json,node.js,csv,Javascript,Arrays,Json,Node.js,Csv,我是编程新手。我从文件中读取csv数据,然后我需要将csv数据转换为json格式。 这是我的csv数据文件: batch_id ingredient_code quantity expiry_date 1 item1 1000 18-01-2019 1 item2 500 18-02-2019 2 item1 1000 1

我是编程新手。我从文件中读取csv数据,然后我需要将csv数据转换为json格式。 这是我的csv数据文件:

batch_id  ingredient_code   quantity    expiry_date
1             item1           1000      18-01-2019
1             item2           500       18-02-2019
2             item1           1000      18-01-2019
3             item2           1000      18-08-2019
4             item2           1000      18-01-2019
4             item1           1000      18-05-2019
4             item3           500       18-04-2019
5             item4           1000      18-01-2019
我期待这样的输出

[{
   batch_id : 1,
   items :[{ingredient_code:item1, quantity:1000, expiry_date:18-01-2019},
           {ingredient_code:item2, quantity:500, expiry_date:18-02-2019}]     
   },
   {
     batch_id : 2,
     items :[{ingredient_code:item1, quantity:1000, expiry_date:18-01-2019}]     
    },
    {
      batch_id : 3,
      items :[{ingredient_code:item1, quantity:1000, expiry_date:18-01-2019}]     
    },
    {
      batch_id : 4,
      items :[{ingredient_code:item1, quantity:1000, expiry_date:18-05-2019},
              {ingredient_code:item2, quantity:1000, expiry_date:18-01-2019},
              {ingredient_code:item3, quantity:500, expiry_date:18-04-2019}]     
     },
    {
      batch_id : 5,
      items :[{ingredient_code:item4, quantity:1000, expiry_date:18-01-2019}]     
}]
我所期望的是批次id应该显示一次,该批次id的所有项都应该添加到数组中。 提前谢谢。。。。。 对不起,英语不好

  • 创建一个空映射
  • 逐行迭代数据
  • 用逗号分隔每行
  • 使用批处理id作为键,并在映射中查找它,它存在,将数据推送到数组中,否则使用包含该行数据的数组初始化该键
  • 迭代键并从中创建一个数组

  • Csv文件与js文件位于同一位置,安装节点模块csvtojson

    var csv = require("csvtojson");
    csv().fromFile('a.csv').on("json",function(jsonArrayObj){ 
         console.log(jsonArrayObj); 
       })
    

    您可以通过在节点模块中安装csvtojson并键入以下命令来实现此目的:

    npm安装csvtojson——保存


    您可以在此处获得更详细的信息。

    2步流程:

    1) 在终端中运行npm i-g csvtojson

    2) 在文件所在的终端中运行
    csvtojson source.csv>converted.json
    。请注意,“source.csv”是您要转换的文件,“converted.json”是您将生成的文件


    有关文档,请参见

    谢谢您的回复,请您给出一些示例。请过目,以便不是代码提供商。您应该首先提出一个您已经尝试过的代码,并告诉use您希望从中得到什么,以及为什么它不符合您的需要。首先,您可以找到阅读CSV文件的教程,然后了解如何存储CSV文件中的数据