A Node.js package to extract CSV files from a ZIP archive and convert them into JSON format.
Install the package via NPM:
npm install zip_csv_to_json
Here’s a basic usage example of how to use the package:
const { processZipFile } = require('zip-to-json-converter');
// Example: Provide the path to the zip file containing CSV files.
(async () => {
const zipFilePath = 'path_to_your_zip_file.zip'; // Replace with your ZIP file path
try {
const results = await processZipFile(zipFilePath);
results.forEach(result => {
console.log(`File: ${result.fileName}`);
console.log(`JSON Data:`, result.jsonPayload);
});
} catch (error) {
console.error("Error processing the zip file:", error);
}
})();
- Description: This is the path to the ZIP file that contains one or more CSV files. The package will extract the CSV files and convert them into JSON.
The function will return an array of objects where each object represents a CSV file converted into JSON format. Each object contains:
- fileName: The name of the CSV file.
- jsonPayload: The JSON data that corresponds to the contents of the CSV file.
[
{
"fileName": "data1.csv",
"jsonPayload": [
{
"Column1": "Value1",
"Column2": "Value2"
},
{
"Column1": "Value3",
"Column2": "Value4"
}
]
},
{
"fileName": "data2.csv",
"jsonPayload": [
{
"ColumnA": "ValueA",
"ColumnB": "ValueB"
}
]
}
]
- Description: Unzips a ZIP file containing CSV files, converts each CSV file to JSON, and returns the data as an array.
- zipFilePath: Path to the ZIP file containing the CSV files.
A promise that resolves to an array of objects with the properties:
- fileName: The name of the CSV file.
- jsonPayload: The JSON data that corresponds to the contents of the CSV file.
If an error occurs during the extraction or conversion process, it will be caught and logged to the console:
try {
const results = await processZipFile('path_to_your_zip_file.zip');
} catch (error) {
console.error("Error processing the zip file:", error);
}
This package is licensed under the ISC License. See the LICENSE file for more information.
Shishir Pandey
Feel free to contact me at shishir18pandey@gmail.com for any inquiries or contributions.