Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evanshortiss/safejson
Library to handle JSON.parse/stringify in an async compatible manner without the need for you to insert try/catch/finally
https://github.com/evanshortiss/safejson
Last synced: 21 days ago
JSON representation
Library to handle JSON.parse/stringify in an async compatible manner without the need for you to insert try/catch/finally
- Host: GitHub
- URL: https://github.com/evanshortiss/safejson
- Owner: evanshortiss
- License: mit
- Created: 2014-02-08T12:44:15.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-01-09T07:55:24.000Z (almost 10 years ago)
- Last Synced: 2024-09-01T22:50:53.273Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 4.58 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
safejson
===Concise library to parse and stringify JSON without the need for try catch.
Simply use the standard Node.js pattern of providing parameters and a
callback that takes an error as the first parameter and result as the second.This library is nice for chaining operations using async as demonstrated below.
## Browser Support
Pretty much any browser with JSON support.
[![browser support](https://ci.testling.com/evanshortiss/safejson.png)
](https://ci.testling.com/evanshortiss/safejson)## Install
```
npm install safejson --save
``````
bower install safejson --save
```## Example with Async
```javascriptvar safejson = require('safejson')
, async = require('async')
, fs = require('fs');exports.updateFile = function (callback) {
async.waterfall([
readFile,
safejson.parse,
doUpdate,
safejson.stringify,
writeFile
], callback);
}```
## Example (Parse)
```javascript
// Valid JSON object that will stringify
var VALID_OBJECT = {
name: 'evan',
age: 23
};var VALID_JSON_STRING = JSON.stringify(VALID_OBJECT);
safejson.parse(VALID_JSON_STRING, function(err, json) {
// err is null as no error would have occured due to valid input
// json is a valid JSON object
});```
## Example (Stringify)
```javascript
// Valid JSON object that will stringify
var VALID_OBJECT = {
name: 'evan',
age: 23
};// Invalid JSON object, has a circular reference added below
var CIRCULAR_OBJECT = {
name: 'evan',
age: 23
};
CIRCULAR_OBJECT.cref = CIRCULAR_OBJECT;safejson.stringify(VALID_OBJECT, function(err, json) {
// err would be null as the object is valid json
// json is a valid json string
});safejson.stringify(CIRCULAR_OBJECT, function(err, str) {
// err would be defined as the object contained a circular reference
// str would equal null
});```
## Configs
#### safejson.defer = {Boolean}
If true the parsing of JSON will be briefly deffered. This uses
process.nextTick in Node.js and the appropriate browser shim
(setTimeout for example) where necessary.## Methods
#### safejson.stringify(value[, replacer [, space]], callback)
Does the job of JSON.stringify but handles exceptions for you. Supports all the
usual JSON.stringify parameters, including the optional *replacer* and
*spaces*. The last parameter must always be a callback function and is not
optional.#### safejson.parse(str[, reviver], callback)
Does the job of JSON.parse but handles exceptions for you. Supports all the
usual JSON.parse parameters. The last parameter must always be a callback
function and is not optional.