Json数组不起作用

时间:2014-11-01 18:04:05

标签: jquery json

我有一个像下面这样的json文件。我使用的是jquery 1.10.1

    var jsonData =
  [
  {
    "data": [
      {
        "image": "Content/Uploads/f1d59b7e-c93a-4419-94a6-6514d1c2384.jpg",
        "textstyles": {
          "pricecolour": "FFF",
          "checkincolour": "222"
        },
        "products": [
          {
            "product": "Product-1",
            "price": "55776"
          },
          {
            "product": "Product-2",
            "price": "24776"
          }
        ]
      }
    ]
  }
];

我使用此代码按data =>下的价格进行排序产品

    function SortJsonData(prop, asc, jsonData) {
            jsonData = jsonData.sort(function (a, b) {
                if (asc) return (a[prop] > b[prop]);
                else return (b[prop] > a[prop]);
            });
            return jsonData;
    }

$(document).ready(function () {
        SortJsonData('price', true, jsonData);
});

但不是排序,随机写。

我需要按产品json字符串的价格进行排序。我该如何编写这段代码?

1 个答案:

答案 0 :(得分:0)

我认为以下代码行可以解决您的目的。

function sortJsonData(prop, asc, json) {
            json = json.sort(function (a, b) {
                if (asc) 
                    return a[prop] - b[prop];
                else
                    return b[prop] - a[prop];
            });
            return json;
    }

调用下面的函数,因为你只想对要排序的JSON的产品部分进行排序,所以只将该部分传递给函数调用。

$(document).ready(function () {
    sortJsonData('price',true,jsonData.data[0].products);
});

现在打印原始的jsonData。您将看到一个已排序的列表。

console.log(jsonData.data[0].products);