Sibeesh Passion

Top Menu

  • Home
  • Search
  • About
  • Privacy Policy

Main Menu

  • Articles
    • Azure
    • .NET
    • IoT
    • JavaScript
    • Career Advice
    • Interview
    • Angular
    • Node JS
    • JQuery
    • Knockout JS
    • Jasmine Framework
    • SQL
    • MongoDB
    • MySQL
    • WordPress
  • Contributions
    • Medium
    • GitHub
    • Stack Overflow
    • Unsplash
    • ASP.NET Forum
    • C# Corner
    • Code Project
    • DZone
    • MSDN
  • Social Media
    • LinkedIn
    • Facebook
    • Instagram
    • Twitter
  • YouTube
    • Sibeesh Venu
    • Sibeesh Passion
  • Awards
  • Home
  • Search
  • About
  • Privacy Policy

logo

Sibeesh Passion

  • Articles
    • Azure
    • .NET
    • IoT
    • JavaScript
    • Career Advice
    • Interview
    • Angular
    • Node JS
    • JQuery
    • Knockout JS
    • Jasmine Framework
    • SQL
    • MongoDB
    • MySQL
    • WordPress
  • Contributions
    • Medium
    • GitHub
    • Stack Overflow
    • Unsplash
    • ASP.NET Forum
    • C# Corner
    • Code Project
    • DZone
    • MSDN
  • Social Media
    • LinkedIn
    • Facebook
    • Instagram
    • Twitter
  • YouTube
    • Sibeesh Venu
    • Sibeesh Passion
  • Awards
  • Linux Azure Function Isolated Dot Net 9 YAML Template Deployment

  • Build, Deploy, Configure CI &CD Your Static Website in 5 mins

  • Post Messages to Microsoft Teams Using Python

  • Get Azure Blob Storage Blob Metadata Using PowerShell

  • Deploy .net 6 App to Azure from Azure DevOps using Pipelines

CodeProjectJQueryJson
Home›CodeProject›Sort a JSON Array Programmatically by a Property

Sort a JSON Array Programmatically by a Property

By SibeeshVenu
June 10, 2015
1139
0
Share:

Introduction

Hi all, I hope you all are fine. Today we will learn how to sort a JSON object by its property. We will be using normal jQuery features to do this. I hope you will like it.

Background

Yesterday I got a situation where I needed to sort my JSON object that I am creating using server data. So I though of sharing that with you all.

Using the code

First of all we will add a jQuery reference as in the following:
[js]
<script src=“jquery-2.1.4.min.js”></script>
[/js]

Now we need some, data right? Please have a look at the following JSON data.

[js]
var data = ‘[{“name”:2014,”data”:[{“x”:”1″,”y”:222808746.81}]},{“name”:2013,”data”:[{“x”:”2″,”y”:289647045.18}]},{“name”:2014,”data”:[{“x”:”2″,”y”:285136890.07}]},{“name”:2013,”data”:[{“x”:”3″,”y”:370853178.74}]},{“name”:2014,”data”:[{“x”:”3″,”y”:403272964.28}]},{“name”:2012,”data”:[{“x”:”4″,”y”:217294031.36}]},{“name”:2013,”data”:[{“x”:”4″,”y”:224715039.94}]},{“name”:2014,”data”:[{“x”:”4″,”y”:249034460.23}]},{“name”:2012,”data”:[{“x”:”5″,”y”:215978054.15}]},{“name”:2013,”data”:[{“x”:”5″,”y”:241211810.92}]}]’;
[/js]

Next we need some UI elements. Am I right?
[html]
<div id=“unsorted”></div>
<div id=“sorted”></div>
<button id=“makemesort”>Make Me Sort</button>
[/html]

What next? We need to show this data to our UI, right? For that I am calling a function in our document ready function.
[js]
var jsonObject;
$(function () {
$(‘#sorted’).hide();
loadUnsorted();
$(‘#makemesort’).click(function () {
loadSorted();
$(‘#makemesort’).hide();
$(‘#sorted’).show();
});
});
[/js]

The following is the function definition for the loadUnsorted() function.
[js]
function loadUnsorted() {
jsonObject = $.parseJSON(data);
var html = ‘<table><th>Year</th><th>X Value</th><th>Y Value</th>’;
for (i = 0; i < jsonObject.length; i++) {
html += ‘<tr><td>’ + jsonObject[i].name + ‘</td><td>’ + jsonObject[i].data[0].x + ‘</td><td>’ + jsonObject[i].data[0].y + ‘</td></tr>’;
}
html += ‘</table>’;
$(‘#unsorted’).append(html);
}
[/js]

What we are doing here is parsing our data and appending the data to our UI element using a for loop.

Now if you run it, you will get output as follows.

Now we have successfully formatted our data and shown it to our UI. Cool, right?
So shall we go and sort our data? I guess you said “Yes”. Awesome.
Now we will create a click event for our “Make me sort” button as in the following:
[js]
$(‘#makemesort’).click(function () {
loadSorted();
$(‘#makemesort’).hide();
$(‘#sorted’).show();
});
[/js]

So here is the definition for the loadSorted() function.
[js]
function loadSorted() {
jsonObject.sort(SortMe);
var html = ‘<table><th>Year</th><th>X Value</th><th>Y Value</th>’;
for (i = 0; i < jsonObject.length; i++) {
html += ‘<tr><td>’ + jsonObject[i].name + ‘</td><td>’ + jsonObject[i].data[0].x + ‘</td><td>’ + jsonObject[i].data[0].y + ‘</td></tr>’;
}
html += ‘</table>’;
$(‘#sorted’).append(html);
}
[/js]

Now I guess you could determine the difference of both the loadSorted() and loadUnsorted() functions. Yeah, you are right. I am calling a sort function “sortMe” there.
[js]
function SortMe(a, b) {
if (b.name != null && b.name != undefined && a.name != null && a.name != undefined) {
var First = a.name.toString().toLowerCase();
var Second = b.name.toString().toLowerCase();
return ((First < Second) ? -1 : ((First > Second) ? 1 : 0));
}
}
[/js]

What our “sortMe” function does is, it will take two objects at a time and compare those by the property “name” of each object.

[js]
(First < Second) ? -1 : ((First > Second) ? 1 : 0)
[/js]

Now shall we look into the complete code? We have done everything folks.

Complete Code

[html]
<!DOCTYPE html>
<html>
<head>
<title>Sort JSON Object by its property and show demo – Sibeesh Passion</title>
<script src=“jquery-2.1.4.min.js”></script>
<style>
#unsorted {
border: 1px solid #999;
width:220px;
padding:10px;
float:left;
}
#sorted {
border: 1px solid #999;
width:220px;
padding:10px;
float:left;
}
td {
border: 1px solid #ccc;
padding: 5px;
text-align: center;
}
</style>
<script>
var data = ‘[{“name”:2014,”data”:[{“x”:”1″,”y”:222808746.81}]},{“name”:2013,”data”:[{“x”:”2″,”y”:289647045.18}]},{“name”:2014,”data”:[{“x”:”2″,”y”:285136890.07}]},{“name”:2013,”data”:[{“x”:”3″,”y”:370853178.74}]},{“name”:2014,”data”:[{“x”:”3″,”y”:403272964.28}]},{“name”:2012,”data”:[{“x”:”4″,”y”:217294031.36}]},{“name”:2013,”data”:[{“x”:”4″,”y”:224715039.94}]},{“name”:2014,”data”:[{“x”:”4″,”y”:249034460.23}]},{“name”:2012,”data”:[{“x”:”5″,”y”:215978054.15}]},{“name”:2013,”data”:[{“x”:”5″,”y”:241211810.92}]}]’;
var jsonObject;
$(function () {
$(‘#sorted’).hide();
loadUnsorted();
$(‘#makemesort’).click(function () {
loadSorted();
$(‘#makemesort’).hide();
$(‘#sorted’).show();
});
});
function loadUnsorted() {
jsonObject = $.parseJSON(data);
var html = ‘<table><th>Year</th><th>X Value</th><th>Y Value</th>’;
for (i = 0; i < jsonObject.length; i++) {
html += ‘<tr><td>’ + jsonObject[i].name + ‘</td><td>’ + jsonObject[i].data[0].x + ‘</td><td>’ + jsonObject[i].data[0].y + ‘</td></tr>’;
}
html += ‘</table>’;
$(‘#unsorted’).append(html);
}
function loadSorted() {
jsonObject.sort(SortMe);
var html = ‘<table><th>Year</th><th>X Value</th><th>Y Value</th>’;
for (i = 0; i < jsonObject.length; i++) {
html += ‘<tr><td>’ + jsonObject[i].name + ‘</td><td>’ + jsonObject[i].data[0].x + ‘</td><td>’ + jsonObject[i].data[0].y + ‘</td></tr>’;
}
html += ‘</table>’;
$(‘#sorted’).append(html);
}
function SortMe(a, b) {
if (b.name != null && b.name != undefined && a.name != null && a.name != undefined) {
var First = a.name.toString().toLowerCase();
var Second = b.name.toString().toLowerCase();
return ((First < Second) ? -1 : ((First > Second) ? 1 : 0));
}
}
</script>
</head>
<body>
<div id=“unsorted”></div>
<div id=“sorted”></div>
<button id=“makemesort”>Make Me Sort</button>
</body>
</html>
[/html]

So now it is time to see our output. I am eager to see it.

You can find we have sorted our object and shown it in a separate table. Cool.
That is all for the day. I will return with another article soon.

Conclusion

I hope you liked this article. Please share me your valuable thoughts and comments. Your feedbacks are always welcome. Thanks in advance. Happy coding!.

Kindest Regards.
Sibeesh Venu

TagsJQueryJsonJson ArraySortSort array by property
Previous Article

Infragistics Ultimate 1 Year Subscription

Next Article

One Plus One Released New OS’s

0
Shares
  • 0
  • +
  • 0
  • 0
  • 0

SibeeshVenu

I am Sibeesh Venu, an engineer by profession and writer by passion. Microsoft MVP, Author, Speaker, Content Creator, Youtuber, Programmer.

Related articles More from author

  • .NETASP.NETC#JsonMicrosoft ADOMD

    How to Convert Microsoft ADOMD Data Source to JSON

    January 29, 2015
    By SibeeshVenu
  • Code SnippetsJQuery

    How to use css property in JQuery

    May 31, 2015
    By SibeeshVenu
  • Code SnippetsJQuery

    Find object length in jquery

    May 31, 2015
    By SibeeshVenu
  • Code SnippetsJQuery

    How to forcibly call the change function of UI element in JQuery

    May 31, 2015
    By SibeeshVenu
  • Code SnippetsJQuery

    Find and set checked true and call click event dynamically

    May 31, 2015
    By SibeeshVenu
  • Code SnippetsJQuery

    Find out the nth element and get the particular string

    May 31, 2015
    By SibeeshVenu
0

My book

Asp Net Core and Azure with Raspberry Pi Sibeesh Venu

YouTube

MICROSOFT MVP (2016-2022)

profile for Sibeesh Venu - Microsoft MVP

Recent Posts

  • Linux Azure Function Isolated Dot Net 9 YAML Template Deployment
  • Build, Deploy, Configure CI &CD Your Static Website in 5 mins
  • Easily move data from one COSMOS DB to another
  • .NET 8 New and Efficient Way to Check IP is in Given IP Range
  • Async Client IP safelist for Dot NET
  • Post Messages to Microsoft Teams Using Python
  • Get Azure Blob Storage Blob Metadata Using PowerShell
  • Deploy .net 6 App to Azure from Azure DevOps using Pipelines
  • Integrate Azure App Insights in 1 Minute to .Net6 Application
  • Azure DevOps Service Connection with Multiple Azure Resource Group

Tags

Achievements (35) Angular (14) Angular 5 (7) Angular JS (15) article (10) Article Of The Day (13) Asp.Net (14) Azure (65) Azure DevOps (10) Azure Function (10) Azure IoT (7) C# (17) c-sharp corner (13) Career Advice (11) chart (11) CSharp (7) CSS (7) CSS3 (6) HighChart (10) How To (9) HTML5 (10) HTML5 Chart (11) Interview (6) IoT (11) Javascript (10) JQuery (82) jquery functions (9) JQWidgets (15) JQX Grid (17) Json (7) Microsoft (8) MVC (20) MVP (9) MXChip (7) News (18) Office 365 (7) Products (10) SQL (20) SQL Server (15) Visual Studio (10) Visual Studio 2017 (7) VS2017 (7) Web API (12) Windows 10 (7) Wordpress (9)
  • .NET
  • Achievements
  • ADO.NET
  • Android
  • Angular
  • Arduino
  • Article Of The Day
  • ASP.NET
  • Asp.Net Core
  • Automobile
  • Awards
  • Azure
  • Azure CDN
  • azure devops
  • Blockchain
  • Blog
  • Browser
  • C-Sharp Corner
  • C#
  • Career Advice
  • Code Snippets
  • CodeProject
  • Cognitive Services
  • Cosmos DB
  • CSS
  • CSS3
  • Data Factory
  • Database
  • Docker
  • Drawings
  • Drill Down Chart
  • English
  • Excel Programming
  • Exporting
  • Facebook
  • Fun
  • Gadgets
  • GitHub
  • GoPro
  • High Map
  • HighChart
  • How to
  • HTML
  • HTML5
  • Ignite UI
  • IIS
  • Interview
  • IoT
  • JavaScript
  • JQuery
  • jQuery UI
  • JQWidgets
  • JQX Grid
  • Json
  • Knockout JS
  • Linux
  • Machine Learning
  • Malayalam
  • Malayalam Poems
  • MDX Query
  • Microsoft
  • Microsoft ADOMD
  • Microsoft MVP
  • Microsoft Office
  • Microsoft Technologies
  • Microsoft Windows
  • Microsoft Windows Server
  • Mobile
  • MongoDB
  • Monthly Winners
  • MVC
  • MVC Grid
  • MySQL
  • News
  • Node JS
  • npm
  • Number Conversions
  • October 2015
  • Office 365
  • Office Development
  • One Plus
  • Outlook
  • Page
  • PHP
  • Poems
  • PowerShell
  • Products
  • Q&A
  • Raspberry PI
  • React
  • SEO
  • SharePoint
  • Skype
  • Social Media
  • Software
  • Spire.Doc
  • Spire.PDF
  • Spire.XLS
  • SQL
  • SQL Server
  • SSAS
  • SSMS
  • Storage In HTML5
  • Stories
  • Third Party Software Apps
  • Tips
  • Tools
  • Translator Text
  • Uncategorized
  • Unit Testing
  • UWP
  • VB.Net
  • Videos
  • Virtual Machine
  • Visual Studio
  • Visual Studio 2017
  • Wamp Server
  • Web API
  • Web Platform Installer
  • Webinars
  • WebMatrix
  • Windows 10
  • Windows 7
  • Windows 8.1
  • Wordpress
  • Writing

ABOUT ME

I am Sibeesh Venu, an engineer by profession and writer by passion. Microsoft MVP, Author, Speaker, Content Creator, Youtuber, Programmer. If you would like to know more about me, you can read my story here.

Contact Me

  • info@sibeeshpassion.com

Pages

  • About
  • Search
  • Privacy Policy
  • About
  • Search
  • Privacy Policy
© Copyright Sibeesh Passion 2014-2025. All Rights Reserved.
Go to mobile version