There could be a situation where we need to sort the given complex JSON Array object based on the available column/properties.

Following is the sample code which demonstrates how can we achieve this. 

Let’s assume following is our JSON Array containing basic Employee names need to sort. 

var JsonEmployeeArr = [ 
{ "EmployeeID": 29, "Name": "Sai K"}, 
{ "EmployeeID": 24, "Name": "Balaraju"}, 
{ "EmployeeID": 12, "Name": "Monish B"}, 
{ "EmployeeID": 01, "Name": "Siva T"}];

Following are the core method which will sort based on given property/column in the calling JSON Array (in our case JsonEmployeeArr). 

function JSONSort(prop) { 

                return function (a, b) { 
                    if (a[prop] > b[prop]) { 
                        return 1; 
                    } else if (a[prop] < b[prop]) { 
                        return -1; 
                    } 
                    return 0; 
                } 
 }

Now, we are done with major work and ready to see it in live action as follows. 

Var sortedArray = JsonEmployeeArr.sort(JSONSort("Name"));

As you can observe, we are overriding the default functionality of the JavaScript and injecting our own method as sort functionality. 

Following is the complete code 

<script> 

function JSONSort(prop) { 

                return function (a, b) { 
                    if (a[prop] > b[prop]) { 
                        return 1; 
                    } else if (a[prop] < b[prop]) { 
                        return -1; 
                    } 
                    return 0; 
                } 
            } 
 

$(function(){ 


var JsonEmployeeArr = [ 
{ "EmployeeID": 29, "Name": "Sai K"}, 
{ "EmployeeID": 24, "Name": "Balaraju"}, 
{ "EmployeeID": 12, "Name": "Monish B"}, 
{ "EmployeeID": 01, "Name": "Siva T"}]; 

Var sortedArray = JsonEmployeeArr.sort(JSONSort("Name")); 

SortedArray.forEach((functionitem, index){ 

     $("<li>").text(item).appendTo("#sortedUL"); 

}); 
}); 

</script>

Hope it will help you.

Happy Coding.  🙂