1

我有一个从 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 中排序,那么我该如何解决这个问题,并始终在顶部显示最新的?

4

2 回答 2

0

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

这是一个示例:按值排序 JSON

于 2012-10-01T12:32:11.673 回答
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 );
于 2012-10-01T13:35:49.640 回答