对json格式数据进行排序

admin10年前手机开发11657

 

javascript是弱类型的语言,系统在遍历json数据是会自行判断数据类型进行排序,如下:

  1. <script src="jquery.js"></script>

  2. <script>

  3. var json1 = {

  4. "2":{"name":"第1条"},

  5. "1":{"name":"第2条"},

  6. "3":{"name":"第3条"}

  7. }

  8. var json2 = {

  9. "2_str":{"name":"第1条"},

  10. "1_str":{"name":"第2条"},

  11. "3_str":{"name":"第3条"}

  12. }

  13. $.each(json1, function(i,item){

  14.        alert(i+":"+item.name);

  15. });

  16.  

  17. $.each(json2, function(i,item){

  18.        alert(i+":"+item.name);

  19. });

  20. </script>


如何对json数据按照指定的排序方式进行排序:

  1. <script src="jquery.js"></script>

  2. <script type="text/javascript">

  3. var json = {"languages": [

  4. {"id": "1", "name": "PHP", "sort": "1"},

  5. {"id": "2", "name": "JACSCRIPT", "sort": "3"},

  6. {"id": "3", "name": "PYTHON", "sort": "4"},

  7. {"id": "4", "name": "NODE.JS", "sort": "2"}

  8. ]};

  9.  

  10. //排序前

  11. $.each(json.languages, function(i) {

  12.    alert(json.languages[i].id+"  " +json.languages[i].name+"  sort:"+json.languages[i].sort);

  13. });

  14.  

  15. //进行排序

  16. json["languages"].sort(function(a,b){

  17. return a["sort"] > b["sort"] ? 1 : (a["sort"] == b["sort"] ? 0 : -1);

  18. });

  19.  

  20. //排序后

  21. $.each(json.languages, function(i) {

  22.    alert(json.languages[i].id+"  " +json.languages[i].name+"  sort:"+json.languages[i].sort);

  23. });

  24. </script>


主要是利用javascript的sort方式将数据按照指定方式排序。