Jaydeep
Jaydeep

Reputation: 149

How to sort Json data in Javascript?

I have this format of JSON data.

 {"count": 3, "records": [
 {"common":{"review_date": "2016-02-07 07:00:00","severityid": {"value": "2", "description": "Medium"}}},
 {"common":{"review_date": "2016-02-07 08:00:00","severityid": {"value": "2", "description": "Serious"}}},
 {"common":{"review_date": "2016-02-07 08:00:00","severityid": {"value": "2", "description": "Minor"}}}
 ]}

I want to see this in order of Serious,Medium and then minor.

{"count": 3, "records": [
 {"common":{"review_date": "2016-02-07 08:00:00","severityid": {"value": "2", "description": "Serious"}}},
 {"common":{"review_date": "2016-02-07 07:00:00","severityid": {"value": "2", "description": "Medium"}}},
 {"common":{"review_date": "2016-02-07 08:00:00","severityid": {"value": "2", "description": "Minor"}}}
 ]}

Upvotes: 0

Views: 49

Answers (1)

Nina Scholz
Nina Scholz

Reputation: 386530

You can use a helper object for the wanted order.

{
    Serious: 1, 
    Medium: 2, 
    Minor: 3
}

var data = { "count": 3, "records": [{ "common": { "review_date": "2016-02-07 07:00:00", "severityid": { "value": "2", "description": "Medium" } } }, { "common": { "review_date": "2016-02-07 08:00:00", "severityid": { "value": "2", "description": "Serious" } } }, { "common": { "review_date": "2016-02-07 08:00:00", "severityid": { "value": "2", "description": "Minor" } } }] };

data.records.sort(function (a, b) {
    var order = { Serious: 1, Medium: 2, Minor: 3 };
    return order[a.common.severityid.description] - order[b.common.severityid.description];
});
document.write('<pre>' + JSON.stringify(data, 0, 4) + '</pre>');

Upvotes: 1

Related Questions