循环值时排序JSON数据

时间:2015-07-13 05:07:05

标签: javascript jquery json parsing

我正在使用jquery从本地JSON文件中检索数据, 然后循环结果...

localjsonfile.json

{
  "CGYacList": [ 
    {
      "Reg": "ZJ920",
      "SqnMarks": 3,
      "TailCode": "QO-A",
      "Notes": "N/A"
    },
    {
      "Reg": "ZJ936",
      "SqnMarks": 7,
      "TailCode": "QO-C",
      "Notes": "N/A"
    },
    {
      "Reg": "ZJ936",
      "SqnMarks": 2,
      "TailCode": "QO-C",
      "Notes": "N/A"
    },
    {
      "Reg": "ZJ936",
      "SqnMarks": 92,
      "TailCode": "QO-C",
      "Notes": "N/A"
    },
    {
      "Reg": "ZJ936",
      "SqnMarks": 3,
      "TailCode": "QO-C",
      "Notes": "N/A"
    }
  ]
}

JQUERY CODE

$(document).ready(function() {

        $.ajax({
                url: "localjsonfile.json",
                dataType: "text",
                success: function(data) {

        var json = $.parseJSON(data);

        for (var i = 0; i < json.CGYacList.length; i++) {            

        alert(json.CGYacList[i].SqnMarks);

        }

我的问题是, 使用for (var i = 0; i < json.CGYacList.length; i++)时,是否有一种简单的方法可以对结果进行排序,以便按ASC顺序显示.SqnMarks

干杯

5 个答案:

答案 0 :(得分:0)

创建一个数组,插入数组并在for循环后对数组进行排序:

var sqnMarksArr=[];
for (var i = 0; i < json.CGYacList.length; i++) {            
     sqnMarksArr.push(json.CGYacList[i].SqnMarks);
}
sqnMarks.sort();

答案 1 :(得分:0)

这样就可以了。如果你想反向顺序翻转-1:1。

json.CGYacList.sort(function(a, b){
    return a.SqnMarks > b.SqnMarks? 1 : -1;
});

答案 2 :(得分:0)

对于ASC订单:

json.CGYacList.sort(function(obj1,obj2){return   obj1.SqnMarks>obj2.SqnMarks});

对于DSC订单:

 json.CGYacList.sort(function(obj1,obj2){return obj1.SqnMarks<obj2.SqnMarks});

答案 3 :(得分:0)

只需选择自定义分拣机:

json.CGYacList.sort(function(a,b) {
  return a.SqnMarks - b.SqnMarks; //reverse it for DSC order
});

答案 4 :(得分:0)

您可以使用javascript排序功能或任何其他Jquery排序插件

json.CGYacList.sort(function(a, b){
    return   a.SqnMarks>b.SqnMarks
}

这是一个基于任何元素

对数组进行排序的函数
var sort_by = function(field, reverse, primer){

   var key = primer ? 
       function(x) {return primer(x[field])} : 
       function(x) {return x[field]};

   reverse = !reverse ? 1 : -1;

   return function (a, b) {
       return a = key(a), b = key(b), reverse * ((a > b) - (b > a));
     } 
}
  

信用转到“Triptych