2012-07-19 74 views
0

我試圖解決這JSON對象:排序嵌套的JSON陣列

JSONObject = { 
    "command": [{ 
     "geobox": [...], 
     "jobName": "...", 
     "keywords": ["..."], 
     "users": ["..."] 
    }, { 
     "geobox": [...], 
     "jobName": "...", 
     "keywords": ["...", "..."], 
     "users": ["...", "...", "..."] 
    }], 
    "type": "..." 
} 

它具有「命令」,這是嵌套的JSON對象的數組和「型」,我真的不關心。我希望它根據jobName值按字母順序在「command」中對嵌套的json對象數組進行排序。 我試過這樣的事情,但沒有奏效。

JSONObject.command.sort(function (a, b) { 
    return JSONObject.command[a].jobName - JSONObject.command[b].jobName 
}); 

回答

2
var compareStr = function (a, b) { 
    if (a.jobName == b.jobName) 
     return 0; 
    if (a.jobName > b.jobName) 
     return 1; 
    return -1; 
}; 
JSONObject.command.sort(compareStr); 
+0

這並編譯和運行,我的頁面不會調用我的函數使用該排序方法,但是當我嘗試它似乎沒有排序的權利。當我再次調用JSONObject時,它看起來是以相同的順序排列的,而不是以字母開頭。 – 2012-07-19 18:32:16

+0

我修改了代碼以使其工作。 – 2012-07-19 19:30:28