Skip to content

Instantly share code, notes, and snippets.

@atd
Created November 12, 2015 10:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atd/f38c88374a90ba7f4f42 to your computer and use it in GitHub Desktop.
Save atd/f38c88374a90ba7f4f42 to your computer and use it in GitHub Desktop.
// Sort json by object keys
function sortObject(object){
var sortedObj = {},
keys = Object.keys(object);
keys.sort(function(key1, key2){
key1 = key1.toLowerCase(), key2 = key2.toLowerCase();
if(key1 < key2) return -1;
if(key1 > key2) return 1;
return 0;
});
for(var index in keys){
var key = keys[index];
if(typeof object[key] == 'object' && !(object[key] instanceof Array)){
sortedObj[key] = sortObject(object[key]);
} else {
sortedObj[key] = object[key];
}
}
return sortedObj;
}
var fs = require('fs'),
obj = JSON.parse(fs.readFileSync('input')),
sobj = sortObject(obj);
setTimeout(function() {
fs.writeFile('output', JSON.stringify(sobj, null, 2));
}, 10000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment