Skip to content

Instantly share code, notes, and snippets.

@tzmartin
Forked from geuis/json.js
Last active July 26, 2016 18:37
Show Gist options
  • Save tzmartin/40f2dd86820b59a72488 to your computer and use it in GitHub Desktop.
Save tzmartin/40f2dd86820b59a72488 to your computer and use it in GitHub Desktop.
JSON CommonJS wrapper

Simple wrapper around JSON global that adds graceful error handling via try/catch. 😋

module.exports = (function(){
 
    var parse = JSON.parse;
 
    return {
 
        stringify: JSON.stringify,
 
        validate: function(str){
        
            try{
                parse(str);
                return true;
            }catch(err){
                return err;
            }
 
        },
 
        parse: function(str){
 
            try{
                return parse(str);
            }catch(err){
                return undefined;
            }
 
        }
    };
    
})();

Usage

JSON = require('json');

console.log(JSON.parse("{oops}")||{event:''}); // assignment for ensuring consistency

console.log( JSON.validate('{"foo":"bar"}') ); //true
console.log( JSON.validate('{foo:"bar"}') ); //Error message: [SyntaxError: Unexpected token f]

console.log( JSON.parse('{"foo":"bar"}') ); // js object, { foo: 'bar' }
console.log( JSON.parse('{foo:"bar"}') ); //undefined

console.log( JSON.stringify({foo:"bar"}) ); //{"foo":"bar"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment