1.0.10 • Published 5 months ago
json-csv-json v1.0.10
CSV to JSON and JSON to CSV Converter
This project provides utility functions to convert JSON data to CSV format and vice versa. It includes validation mechanisms to ensure the input data is correctly formatted before conversion. The following key functions are implemented:
Installation
Install the package via npm:
npm install json-csv-json
Functions
jsonToCsv(jsonData)
Converts a JSON array or object into a CSV string.
Parameters
jsonData
(Object | Array): JSON data to be converted to CSV.
Returns
- A string in CSV format if the input JSON is valid.
false
if the input JSON is invalid.- Throws an error if an unexpected issue occurs.
csvToJson(csvData)
Converts a CSV string into a JSON array.
Parameters
csvData
(String): CSV data to be converted to JSON.
Returns
- A JSON array if the input CSV is valid.
false
if the input CSV is invalid.- Throws an error if an unexpected issue occurs.
Example Usage
1. Convert JSON to CSV
a. Using Data
import { jsonToCsv } from 'json-csv-json';
const sampleJson = [
{ "name": "John", "age": 30, "city": "New York" },
{ "name": "Jane", "age": 25, "city": "Los Angeles" }
];
const csvOutput = await jsonToCsv(sampleJson);
console.log(csvOutput);
b. Using a file
import { jsonToCsv } from 'json-csv-json';
const csvOutput = await jsonToCsv("./test.json","file");
console.log(csvOutput);
Output:
name,age,city
"John","30","New York"
"Jane","25","Los Angeles"
2. Convert CSV to JSON
a. Using Data
import { csvToJson } from 'json-csv-json';
const sampleCsv = `name,age,city\n"John","30","New York"\n"Jane","25","Los Angeles"`;
const jsonOutput = await csvToJson(sampleCsv);
console.log(jsonOutput);
b. Using a file
import { csvToJson } from 'json-csv-json';
const jsonOutput = await csvToJson("./test.csv","file");
console.log(jsonOutput);
Output:
[
{ "name": "John", "age": "30", "city": "New York" },
{ "name": "Jane", "age": "25", "city": "Los Angeles" }
]
Error Handling
- If the input JSON or CSV is invalid, the functions log an appropriate error message and return
false
. - Unexpected errors are caught and logged with a generic error message.
Dependencies
Ensure the following helper modules are included:
validate-format.js
: ProvidesisJsonValid
andisCsvValid
for input validation.csv-parser-to-json.js
: IncludesparseCsvRow
to handle CSV row parsing.
Notes
- CSV headers are derived from the keys of the input JSON objects.
- Missing or
null
values in JSON objects are represented as empty strings in the CSV. - Similarly, missing fields in CSV rows are converted to
null
in the JSON output.
License
This utility is open for use under the MIT License.