排序JSON对象

时间:2013-03-28 11:36:43

标签: javascript

如何在javascript中对JSON对象进行排序?

obj = JSON.parse(count);   //count is responseText

count= {"MH_YTML":"Yavatmal H.O","MH_WRDH":"Wardha H.O","MH_SWTW":"Sawantwadi H.O"}  //count{key,value}

我想按升序排序计数值(Yavatmal H.O,Wardha H.O和Sawantwadi H.O)。

3 个答案:

答案 0 :(得分:2)

JavaScript对象(及其相关的JSON表示)没有顺序。它们是无序的财产名称和价值袋。

您可以按特定顺序创建包含条目的数组。

答案 1 :(得分:2)

您无法对对象进行排序。但是,您可以创建一个数组并对其进行排序。像这样:

var count= {"MH_YTML":"Yavatmal H.O", "MH_WRDH":"Wardha H.O", "MH_SWTW":"Sawantwadi H.O"},
    countArr = [];

for (var i in count) {
    countArr.push({key: i, val: count[i]});
}
countArr.sort(function(a, b) {
    if (a.val < b.val) return -1;
    if (a.val > b.val) return 1;
    return 0; 
});

演示http://jsfiddle.net/dfsq/8S4aD/1/

答案 2 :(得分:1)

首先将该对象转换为数组,其中每个数组元素都是一对键&amp;来自object的值,然后使用自定义函数按值对该数组进行排序。然后,您可以将其转换回对象,但不能保证对象属性顺序保持不变。