123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- # parse-json
- > Parse JSON with more helpful errors
- ## Install
- ```
- $ npm install parse-json
- ```
- ## Usage
- ```js
- const parseJson = require('parse-json');
- const json = '{\n\t"foo": true,\n}';
- JSON.parse(json);
- /*
- undefined:3
- }
- ^
- SyntaxError: Unexpected token }
- */
- parseJson(json);
- /*
- JSONError: Unexpected token } in JSON at position 16 while parsing near '{ "foo": true,}'
- 1 | {
- 2 | "foo": true,
- > 3 | }
- | ^
- */
- parseJson(json, 'foo.json');
- /*
- JSONError: Unexpected token } in JSON at position 16 while parsing near '{ "foo": true,}' in foo.json
- 1 | {
- 2 | "foo": true,
- > 3 | }
- | ^
- */
- // You can also add the filename at a later point
- try {
- parseJson(json);
- } catch (error) {
- if (error instanceof parseJson.JSONError) {
- error.fileName = 'foo.json';
- }
- throw error;
- }
- /*
- JSONError: Unexpected token } in JSON at position 16 while parsing near '{ "foo": true,}' in foo.json
- 1 | {
- 2 | "foo": true,
- > 3 | }
- | ^
- */
- ```
- ## 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](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter
- ) for more.
- #### filename
- Type: `string`
- Filename displayed in the error message.
- ### parseJson.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.
- ---
- <div align="center">
- <b>
- <a href="https://tidelift.com/subscription/pkg/npm-parse-json?utm_source=npm-parse-json&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
- </b>
- <br>
- <sub>
- Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
- </sub>
- </div>
|