Skip to content

Instantly share code, notes, and snippets.

@adamterlson
Last active August 29, 2015 14:07
Show Gist options
  • Select an option

  • Save adamterlson/a051f8ebb0e66b45010b to your computer and use it in GitHub Desktop.

Select an option

Save adamterlson/a051f8ebb0e66b45010b to your computer and use it in GitHub Desktop.

Revisions

  1. adamterlson revised this gist Sep 29, 2014. 1 changed file with 20 additions and 19 deletions.
    39 changes: 20 additions & 19 deletions jsonPropertySort.js
    Original file line number Diff line number Diff line change
    @@ -1,22 +1,23 @@
    function sortProperties(objToSort) {
    var properties = Object.keys(objToSort).sort();
    var result = {};
    properties.forEach(function (prop) {
    if (!objToSort[prop]) {
    result[prop] = objToSort[prop];
    }
    else if (Array.isArray(objToSort[prop])){
    result[prop] = objToSort[prop].map(sortProperties);
    }
    else if (typeof objToSort[prop] === 'object') {
    result[prop] = sortProperties(objToSort[prop]);
    }
    else {
    result[prop] = objToSort[prop];
    }
    });
    return result;
    }

    ['./jsonFile'].forEach(function (location) {
    function sortProperties(objToSort) {
    var properties = Object.keys(objToSort).sort();
    var newObj = {};
    properties.forEach(function (prop) {
    if (!objToSort[prop]) {
    newObj[prop] = objToSort[prop];
    }
    else if (Array.isArray(objToSort[prop])){
    newObj[prop] = objToSort[prop].map(sortProperties);
    }
    else if (typeof objToSort[prop] === 'object') {
    newObj[prop] = sortProperties(objToSort[prop]);
    }
    else {
    newObj[prop] = objToSort[prop];
    }
    });
    return newObj;
    }
    console.log(location, JSON.stringify(sortProperties(require(location)), null, 2));
    });
  2. adamterlson revised this gist Sep 29, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion jsonPropertySort.js
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    ['./file'].forEach(function (location) {
    ['./jsonFile'].forEach(function (location) {
    function sortProperties(objToSort) {
    var properties = Object.keys(objToSort).sort();
    var newObj = {};
  3. adamterlson renamed this gist Sep 29, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  4. adamterlson revised this gist Sep 29, 2014. 1 changed file with 0 additions and 7 deletions.
    7 changes: 0 additions & 7 deletions file.json
    Original file line number Diff line number Diff line change
    @@ -1,7 +0,0 @@
    {
    "a": "asdf",
    "z": 12345,
    "c": 12134543,
    "b": 25000,
    "1": "tokens"
    }
  5. adamterlson revised this gist Sep 29, 2014. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion main.js
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,9 @@
    var properties = Object.keys(objToSort).sort();
    var newObj = {};
    properties.forEach(function (prop) {
    if (!objToSort[prop]) n newObj[prop] = objToSort[prop];
    if (!objToSort[prop]) {
    newObj[prop] = objToSort[prop];
    }
    else if (Array.isArray(objToSort[prop])){
    newObj[prop] = objToSort[prop].map(sortProperties);
    }
  6. adamterlson created this gist Sep 29, 2014.
    7 changes: 7 additions & 0 deletions file.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    {
    "a": "asdf",
    "z": 12345,
    "c": 12134543,
    "b": 25000,
    "1": "tokens"
    }
    20 changes: 20 additions & 0 deletions main.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    ['./file'].forEach(function (location) {
    function sortProperties(objToSort) {
    var properties = Object.keys(objToSort).sort();
    var newObj = {};
    properties.forEach(function (prop) {
    if (!objToSort[prop]) n newObj[prop] = objToSort[prop];
    else if (Array.isArray(objToSort[prop])){
    newObj[prop] = objToSort[prop].map(sortProperties);
    }
    else if (typeof objToSort[prop] === 'object') {
    newObj[prop] = sortProperties(objToSort[prop]);
    }
    else {
    newObj[prop] = objToSort[prop];
    }
    });
    return newObj;
    }
    console.log(location, JSON.stringify(sortProperties(require(location)), null, 2));
    });