What is parse-json?
The parse-json npm package is used for parsing JSON strings. It provides an API for parsing JSON with more helpful error messages than the native JSON.parse. It can also handle trailing commas and comments in JSON strings, which are not supported by the standard JSON.parse.
What are parse-json's main functionalities?
Parse JSON with better error messages
This feature allows users to parse JSON strings and get more informative error messages when the JSON is invalid. It helps in debugging and fixing the JSON content.
const parseJson = require('parse-json');
try {
const obj = parseJson('{"foo": true,}');
} catch (error) {
console.error(error.message);
}
Parse JSON with comments
parse-json can handle JSON strings that contain comments, which are not typically allowed in JSON. This is useful when dealing with configurations or other JSON files where comments might be present.
const parseJson = require('parse-json');
const jsonWithComments = '{/* comment */ "foo": true}'
const obj = parseJson(jsonWithComments);
Parse JSON with trailing commas
This feature allows the parsing of JSON strings that have trailing commas after the last element in an object or array, which is not permitted in standard JSON.
const parseJson = require('parse-json');
const jsonWithTrailingComma = '{"foo": true,}'
const obj = parseJson(jsonWithTrailingComma);
Other packages similar to parse-json
json5
json5 is a JSON parser and serializer that allows for comments, trailing commas, and other non-standard features. It is similar to parse-json but aims to be a superset of the JSON5 data format, which extends the JSON format to include additional JavaScript features.
json-parse-better-errors
json-parse-better-errors is another JSON parsing library that provides more helpful error messages than the native JSON.parse. It is similar to parse-json in its goal to improve error feedback but does not support comments or trailing commas.
json-parse-safe
json-parse-safe is a safe JSON parser that returns an error instead of throwing one. This can be useful for applications that need to handle JSON parsing errors more gracefully. It does not provide the extended syntax support that parse-json does.
parse-json
Parse JSON with more helpful errors
Install
npm install parse-json
Usage
import parseJson, {JSONError} from 'parse-json';
const json = '{\n\t"foo": true,\n}';
JSON.parse(json);
parseJson(json);
parseJson(json, 'foo.json');
try {
parseJson(json);
} catch (error) {
if (error instanceof JSONError) {
error.fileName = 'foo.json';
}
throw error;
}
API
parseJson(string, reviver?, filename?)
Throws a JSONError
when there is a parsing error.
string
Type: string
reviver
Type: Function
Prescribes how the value originally produced by parsing is transformed, before being returned. See JSON.parse
docs for more.
filename
Type: string
The filename displayed in the error message.
JSONError
Exposed for instanceof
checking.
fileName
Type: string
The filename displayed in the error message.
codeFrame
Type: string
The printable section of the JSON which produces the error.
rawCodeFrame
Type: string
The raw version of codeFrame
without colors.