循环遍历json结果并按数字顺序排序

时间:2013-04-04 07:03:35

标签: javascript jquery

这是我的json:

{"event": { 
"items": [
            {"position": "2", "name": "John Doe 1"},
            {"position" : "1", "name": "John Doe 2"},
            {"position": "3", "name": "John Does 3"}
            ]
        }

这是我在阅读json结果后循环结果的方法:

$.each(data.event.items, function(val) {
 $('#list').append('<li>'+data.event.items[val].name+'</li>');
});

现在订单是:John Doe 1,John Doe 2,John Doe 3.我想循环它们并按照已经给出的位置顺序显示它们。所以正确的顺序是John Doe 2,John Doe 1,John Doe 3。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:6)

您可以在构建显示之前对项目进行排序:

data.event.items.sort(function(a,b) {
   return a.position-b.position;        
});

Demonstration(点击“使用JS运行”)

请注意,您的问题中没有JSONdata是一个普通的JavaScript对象。

答案 1 :(得分:4)

您需要先对项目进行排序:

data.event.items.sort(function(item_a, item_b) {
    return item_a.position - item_b.position;
});