📅  最后修改于: 2023-12-03 14:44:43.753000             🧑  作者: Mango
在本文中,我们将学习如何使用 Node.js 从一个链接中获取 CSV 数据,将其转换为 JSON 并写入到一个文件中。
我们将使用 csvtojson
模块来将 CSV 数据转换为 JSON。在终端中输入以下命令来安装该模块:
npm install csvtojson
我们将使用 axios
模块来获取 CSV 数据。在终端中输入以下命令来安装该模块:
npm install axios
const axios = require('axios');
const getCsvData = async (url) => {
try {
const response = await axios.get(url);
const csvData = response.data;
return csvData;
} catch (error) {
console.error(error);
}
};
const csvUrl = 'https://example.com/data.csv';
const csvData = await getCsvData(csvUrl);
在 getCsvData
方法中,我们使用 axios.get
方法来获取 CSV 数据并返回该数据。在 csvUrl
中,你需要替换为你要获取数据的实际链接。
const csv = require('csvtojson');
const convertCsvToJson = async (csvData) => {
try {
const jsonArray = await csv().fromString(csvData);
return jsonArray;
} catch (error) {
console.error(error);
}
};
const jsonArray = await convertCsvToJson(csvData);
在 convertCsvToJson
方法中,我们将使用 csvtojson
模块将 CSV 数据转换为 JSON 数组并返回该数组。
我们将使用 fs
模块将 JSON 数组写入到一个文件中。
const fs = require('fs');
const writeJsonToFile = (jsonArray, filePath) => {
const jsonString = JSON.stringify(jsonArray, null, 2);
fs.writeFile(filePath, jsonString, (err) => {
if (err) console.log(err);
console.log(`JSON data written to ${filePath}`);
});
};
const filePath = './data.json';
writeJsonToFile(jsonArray, filePath);
在 writeJsonToFile
方法中,我们将使用 JSON.stringify
方法将 JSON 数组转换为字符串。然后,我们将使用 fs.writeFile
方法将该字符串写入到一个文件中。在 filePath
变量中,你需要替换为你要写入数据的实际文件路径和文件名。
const axios = require('axios');
const csv = require('csvtojson');
const fs = require('fs');
const getCsvData = async (url) => {
try {
const response = await axios.get(url);
const csvData = response.data;
return csvData;
} catch (error) {
console.error(error);
}
};
const convertCsvToJson = async (csvData) => {
try {
const jsonArray = await csv().fromString(csvData);
return jsonArray;
} catch (error) {
console.error(error);
}
};
const writeJsonToFile = (jsonArray, filePath) => {
const jsonString = JSON.stringify(jsonArray, null, 2);
fs.writeFile(filePath, jsonString, (err) => {
if (err) console.log(err);
console.log(`JSON data written to ${filePath}`);
});
};
const main = async () => {
const csvUrl = 'https://example.com/data.csv';
const csvData = await getCsvData(csvUrl);
const jsonArray = await convertCsvToJson(csvData);
const filePath = './data.json';
writeJsonToFile(jsonArray, filePath);
};
main();
这是一个完整的代码示例,它将从链接中获取 CSV 并将其转换为 JSON,最后写入到一个文件中。在执行完该脚本后,你将在指定文件路径中找到一个 JSON 文件,该文件包含了从 CSV 数据中提取的 JSON 数据。