按值排序JSON

dia*_*ank 13 javascript php sorting jquery json

我如何按名称 - >值排序我的json文件?我想通过标签名称的asc值来显示.知道如何转换我的json文件吗?

以下是查看我的JSON文件的方法:

[{
    "id": "105",
    "name": "FIAT",
    "active": true,
    "parentId": "1"
}, {
    "id": "106",
    "name": "AUDI",
    "active": true,
    "parentId": "1"
}, {
    "id": "107",
    "name": "BMW",
    "active": true,
    "parentId": "1"
}, {
    "id": "109",
    "name": "RENAULT",
    "active": true,
    "parentId": "1"
}]
Run Code Online (Sandbox Code Playgroud)

如果有人帮助我,我将不胜感激.提前致谢.

Nin*_*olz 31

我建议用 Array#sort()

var data = [{ "id": "105", "name": "FIAT", "active": true, "parentId": "1" }, { "id": "106", "name": "AUDI", "active": true, "parentId": "1" }, { "id": "107", "name": "BMW", "active": true, "parentId": "1" }, { "id": "109", "name": "RENAULT", "active": true, "parentId": "1" }];
data.sort(function (a, b) {
    return a.name.localeCompare(b.name);
});
document.write('<pre>' + JSON.stringify(data, 0, 4) + '</pre>');
Run Code Online (Sandbox Code Playgroud)

  • localeCompare 支持是否足够广泛? (2认同)

dor*_*ado 7

非常直截了当.

data = [{
    "id": "105",
    "name": "FIAT",
    "active": true,
    "parentId": "1"
}, {
    "id": "106",
    "name": "AUDI",
    "active": true,
    "parentId": "1"
}, {
    "id": "107",
    "name": "BMW",
    "active": true,
    "parentId": "1"
}, {
    "id": "109",
    "name": "RENAULT",
    "active": true,
    "parentId": "1"
}];


data.sort(function(a, b) {
    return a.name > b.name;
});

data.sort();

console.log(data);
Run Code Online (Sandbox Code Playgroud)