csv-json-core
Version:
Convert CSV to JSON and JSON to CSV using only core Node.js modules. Supports all CSV formats. like both Strings and Files
82 lines (62 loc) • 2.27 kB
Markdown
is a lightweight Node.js package for converting CSV (Comma-Separated Values) data to JSON (JavaScript Object Notation) and vice versa, using only core Node.js modules. It supports both string and file-based conversions, making it ideal for data transformation, import/export, and integration tasks.
## Features
- Convert CSV strings or files to JSON arrays
- Convert JSON arrays to CSV strings or files
- Handles custom delimiters, quoted fields, and escaped characters
- No external dependencies—uses only Node.js core modules
- Simple API for quick integration
## Version 1.0.0
This is the initial stable release. It includes:
- CSV to JSON conversion (string or file input)
- JSON to CSV conversion (string or file input, file output optional)
- Error handling for malformed input
- Support for standard CSV quoting and escaping
## Installation
```
npm install csv-json-core
```
## Usage
### Importing the module
```js
const { csvToJson, jsonToCsv } = require('csv-json-core');
```
```js
const csv = `name,age\nAlice,30\nBob,25`;
const json = csvToJson(csv);
console.log(json);
// Output: [ { name: 'Alice', age: '30' }, { name: 'Bob', age: '25' } ]
```
```js
const json = csvToJson('data.csv', true);
console.log(json);
```
```js
const jsonArray = [ { name: 'Alice', age: 30 }, { name: 'Bob', age: 25 } ];
const csv = jsonToCsv(JSON.stringify(jsonArray));
console.log(csv);
// Output: name,age\nAlice,30\nBob,25
```
```js
jsonToCsv('data.json', true, 'output.csv');
// Writes CSV to output.csv
```
- `input` (string): CSV data as a string, or a file path if `isFile` is true
- `isFile` (boolean, optional): If true, reads CSV from file
- Returns: JSON string (array of objects)
### jsonToCsv(input, isFile = false, output = null)
- `input` (string): JSON data as a string, or a file path if `isFile` is true
- `isFile` (boolean, optional): If true, reads JSON from file
- `output` (string, optional): If provided, writes CSV to this file
- Returns: CSV string
## License
ISC
---
**Author:** Vinod N Shelar
`csv-json-core`