84 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # parse-json [](https://travis-ci.org/sindresorhus/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: Trailing comma in object at 3:1
 | |
| }
 | |
| ^
 | |
| */
 | |
| 
 | |
| 
 | |
| parseJson(json, 'foo.json');
 | |
| /*
 | |
| JSONError: Trailing comma in object in foo.json:3:1
 | |
| }
 | |
| ^
 | |
| */
 | |
| 
 | |
| 
 | |
| // You can also add the filename at a later point
 | |
| try {
 | |
| 	parseJson(json);
 | |
| } catch (err) {
 | |
| 	err.fileName = 'foo.json';
 | |
| 	throw err;
 | |
| }
 | |
| /*
 | |
| JSONError: Trailing comma in object in foo.json:3:1
 | |
| }
 | |
| ^
 | |
| */
 | |
| ```
 | |
| 
 | |
| ## API
 | |
| 
 | |
| ### parseJson(input, [reviver], [filename])
 | |
| 
 | |
| #### input
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| ## License
 | |
| 
 | |
| MIT © [Sindre Sorhus](https://sindresorhus.com)
 |