2012-07-19 81 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