迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中将 CSV 转换为 JSON

作者:迹忆客 最近更新:2024/03/21 浏览次数:

CSV 是一个逗号分隔值文件,扩展名为 .csv,允许以表格格式存储数据。今天的文章将介绍如何在不使用第三方 npm 包的情况下将数据从 CSV 文件转换为 JavaScript Object Notation (JSON)。

与普通转换的主要区别在于逗号可以分隔每一行的值,而我们知道,不同的列也是用逗号分隔的。


在 JavaScript 中将 CSV 转换为 JSON

在这种方法中,我们将 CSV 文件的内容放入一个数组中,并根据分隔符拆分数组的内容。CSV 文件中的所有行都转换为 JSON 对象,这些对象添加到结果数组中,然后将其转换为 JSON,并生成相应的 JSON 输出文件。

下面的代码展示了上面提到的在 JavaScript 中的实现。

const fs = require('fs');
csv = fs.readFileSync('username.csv')

const array = csv.toString().split('\n');

/* Store the converted result into an array */
const csvToJsonResult = [];

/* Store the CSV column headers into seprate variable */
const headers = array[0].split(', ')

/* Iterate over the remaning data rows */
for (let i = 1; i < array.length - 1; i++) {
  /* Empty object to store result in key value pair */
  const jsonObject = {}
  /* Store the current array element */
  const currentArrayString = array[i] let string = ''

  let quoteFlag = 0
  for (let character of currentArrayString) {
    if (character === '"' && quoteFlag === 0) {
      quoteFlag = 1
    } else if (character === '"' && quoteFlag == 1)
      quoteFlag = 0
      if (character === ', ' && quoteFlag === 0) character = '|'
      if (character !== '"') string += character
  }

  let jsonProperties = string.split('|')

  for (let j in headers) {
    if (jsonProperties[j].includes(', ')) {
      jsonObject[headers[j]] =
          jsonProperties[j].split(', ').map(item => item.trim())
    } else
      jsonObject[headers[j]] = jsonProperties[j]
  }
  /* Push the genearted JSON object to resultant array */
  csvToJsonResult.push(jsonObject)
}
/* Convert the final array to JSON */
const json = JSON.stringify(csvToJsonResult);
console.log(json)

上述代码的输出将根据提供的输入数据而有所不同。

输出:

[
  {
    "name": "John",
    "quote": "Hello World"
  },
  {
    "name": "Alma",
    "quote": "Have a nice day"
  }
]

此处演示

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 JavaScript 中从 URL 获取 JSON

发布时间:2024/03/21 浏览次数:166 分类:JavaScript

要从 URL 接收 JSON,我们可以使用 JQuery、Fetch API 和 XMLHttpRequest。每种方法都是恰当的,并且可以有效地显示结果。

JavaScript 中的 Map 索引

发布时间:2024/03/20 浏览次数:197 分类:JavaScript

JavaScript map 方法很容易实现,我们将讨论它的不同参数,以及它们在不同场景中的使用方式。

JavaScript 指针

发布时间:2024/03/20 浏览次数:166 分类:JavaScript

JavaScript 没有明确的方法来定义指针。它允许在对象之间传递值和引用,但不能显示引用。本文将介绍在 JavaScript 中定义指针的好方法。

JavaScript 元组示例

发布时间:2024/03/20 浏览次数:166 分类:JavaScript

在 JavaScript 语言中,元组是具有不可变特性的数组类型。我们可以使用单个变量访问元组,该变量是数组的一种。

JavaScript 右键菜单

发布时间:2024/03/20 浏览次数:123 分类:JavaScript

本文展示了如何在 JavaScript 中向网页添加自定义右键菜单。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便