排序JSON输出(Chrome问题)

时间:2012-10-01 12:24:54

标签: jquery json sorting

我有一个从MySQL数据库中提取数据并输出JSON的函数。以下是结果示例:

{"success":"true","message":"Data loaded","data":{"11":{"id":"11","timestamp2":1349091206,"timestamp":" 1. oktober kl. 13:33","date_from":"25. oktober kl. 8:45","date_to":"25. oktober kl. 8:45","initials":"rt","trafikselskab":"Sydtrafik","alarm_comment":"sr6yer6y","transport_comment":"et6et7","vogn_comment":"uet7uet7","events_comment":"rt7ujrt7ury7u","system_comment":"urt7j","other_comment":"ry8kykytik"},"10":{"id":"10","timestamp2":1349091195,"timestamp":" 1. oktober kl. 13:33","date_from":" 1. oktober kl. 1:40","date_to":" 1. oktober kl. 1:40","initials":"rt","trafikselskab":"Sydtrafik","alarm_comment":"sr6yer6y","transport_comment":"et6et7","vogn_comment":"uet7uet7","events_comment":"rt7ujrt7ury7u","system_comment":"urt7j","other_comment":"ry8kykytik"},"9":{"id":"9","timestamp2":1349089753,"timestamp":" 1. oktober kl. 13:09","date_from":"25. oktober kl. 8:15","date_to":"25. oktober kl. 14:15","initials":"PSH","trafikselskab":"Midttrafik","alarm_comment":"ftyhdrtyh","transport_comment":"dtyjtr7j","vogn_comment":"rtyujkytik","events_comment":"yuilyiol","system_comment":"tuikul","other_comment":"yuolyu9lio"},"8":{"id":"8","timestamp2":1348230434,"timestamp":"21. september kl. 14:27","date_from":"27. september kl. 8:30","date_to":"21. september kl. 8:30","initials":"PSH","trafikselskab":"Movia","alarm_comment":"srtyh","transport_comment":"dyh","vogn_comment":"dtyjhdtyj","events_comment":"teyhtryj","system_comment":"dtyhteyj","other_comment":"trydjrtyuj"}}}

我有一个JS函数,它从JSON中获取数据并将其放在HTML标记中:

function overlevering() {
$.getJSON('/test/ajax2.php?type=test', function(data) {
    if(data.data != '') {
        $.each(data.data, function(fravaer, type) {
                $('#overlevering').append('<article id="'+ type.timestamp2 +'"><h2>Modtaget '+ type.timestamp +'</h2><p class="from">Periode: '+ type.date_from +' - '+ type.date_to +'</p><p class="from">Fra '+ type.initials +', '+ type.trafikselskab +'</p><h3>Alarmer, der kræver særlig opmærksomhed</h3><p>'+type.alarm_comment+'</p><h3>Information vedr. teletaxer, flexture og handicapture</h3><p>'+type.transport_comment+'</p><h3>Information vedr. vogne, vognmænd og centraler</h3><p>'+type.vogn_comment+'</p><h3>Information vedr. systemer</h3><p>'+type.system_comment+'</p><h3>Information vedr. begivenheder, der kan påvirke driften</h3><p>'+type.events_comment+'</p><h3>Øvrige</h3><p>'+type.other_comment+'</p></article>');

        });
    }
});
}

在Safari中访问结果页面时,结果按照JSON(按日期)排序。但是,在Chrome中,它们似乎没有按照任何规则排序,只是抛入其中。

我想在JSON中排序是不可能的,那么我该如何解决这个问题,并始终在最顶层展示?

2 个答案:

答案 0 :(得分:0)

实际上可以对JSON数组进行排序。基本上它只是一个javascript对象一旦你得到它。

以下是一个示例:Sorting JSON by values

答案 1 :(得分:0)

啊,我想通了。我使用JS的sort()方法在getJSON之后对数据进行排序:

    var articles = $("#overlevering article");

        articles.sort(function(a,b) {
        if (a.id < b.id) return 1;
        else if (a.id > b.id) return -1;
        else return 0
    })

    $("#overlevering").empty().append( articles );