node package manager
Easy sharing. Manage teams and permissions with one click. Create a free org ¬Ľ

sjson

sjson NPM version Build Status Dependency Status License

Squishable JSON strings. To assist with JSON compression by stripping variable name double quotes and yet the squished strings can still be parsed by javascript.

Install ūüĒ®

npm install sjson

Usage ūüĒß

var SJSON = require('sjson');
 
var data  = {first:"joe", last:"smith", age:27};
var json  = JSON.stringify(data);
var sjson = SJSON.squish(json);
var json2 = SJSON.unsquish(sjson);
var data2 = JSON.parse(json2);
 
console.log(data);  // {"first": "joe", "last": "smith", "age": 27} 
console.log(json);  // {"first":"joe","last":"smith","age":27} 
console.log(sjson); // {first:"joe",last:"smith",age:27} 
console.log(json2); // {"first":"joe","last":"smith","age":27} 
console.log(data2); // {"first": "joe", "last": "smith", "age": 27} 

While it may not look like much, every byte helps when you scale :-) In this example we get at 15% headstart on any addition compression we may want to do.

Directly operate with objects ūüĒß

sjson = SJSON.squishify(data); // do both JSON.stringify and SJSON.squish 
data2 = SJSON.parse(sjson);    // do both SJSON.unsquish and JSON.parse 
 
console.log(data);  // {"first": "joe", "last": "smith", "age": 27} 
console.log(sjson); // {first:"joe",last:"smith",age:27} 
console.log(data2); // {"first": "joe", "last": "smith", "age": 27} 

Generate browser callbacks ūüĒß

out = SJSON.callbackify(data, 'callme'); // function wrapped SJSON.squishify 
console.log(out);                        // callme({first:"joe",last:"smith",age:27}); 

Credits ūüĎ•

Derek and Bergi

License: MIT ūüĒď