在 JavaScript 中将 CSV 转换为 JSON
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"
}
]
此处演示
相关文章
使用 JavaScript 创建键盘快捷键
发布时间:2024/03/21 浏览次数:157 分类:JavaScript
-
本文演示了如何使用 JavaScript 创建键盘快捷键。它还展示了如何使用第三方库创建键盘快捷键。
在 JavaScript 中从 URL 获取 JSON
发布时间:2024/03/21 浏览次数:166 分类:JavaScript
-
要从 URL 接收 JSON,我们可以使用 JQuery、Fetch API 和 XMLHttpRequest。每种方法都是恰当的,并且可以有效地显示结果。
在 JavaScript 中使用 Fetch API 发布一个 JSON 对象
发布时间:2024/03/21 浏览次数:138 分类:JavaScript
-
在本教程中,我们将讨论如何使用 JavaScript 中的 fetch 方法将 JSON 数据作为 POST 请求发送到服务器。
在 JavaScript 中将 JSON 转换为 XML
发布时间:2024/03/21 浏览次数:189 分类:JavaScript
-
本文有助于使用 JavaScript 将 JSON 转换为 XML。
JavaScript 中的 Map 索引
发布时间:2024/03/20 浏览次数:197 分类:JavaScript
-
JavaScript map 方法很容易实现,我们将讨论它的不同参数,以及它们在不同场景中的使用方式。
JavaScript 中 let 和 var 的区别
发布时间:2024/03/20 浏览次数:79 分类:JavaScript
-
本教程描述了两个关键字 var 和 let 在 JavaScript 中的实际区别。
JavaScript 指针
发布时间:2024/03/20 浏览次数:166 分类:JavaScript
-
JavaScript 没有明确的方法来定义指针。它允许在对象之间传递值和引用,但不能显示引用。本文将介绍在 JavaScript 中定义指针的好方法。
JavaScript 元组示例
发布时间:2024/03/20 浏览次数:166 分类:JavaScript
-
在 JavaScript 语言中,元组是具有不可变特性的数组类型。我们可以使用单个变量访问元组,该变量是数组的一种。