对我的 JSON 响应进行排序
Sorting my JSON response
{
"JsonResult": {
"List": [{
"Subject": "Something",
"Type": 0,
"TypeDescription": "Referral"
}],
}
}
这是我在点击服务时得到的示例 json 响应,之后我有一个带有Subject, Type and TypeDescription
等选项的按钮。
如何根据我发送的参数对 Json 响应进行排序。
function sortItems(jsonResponse,paramater){
var sorted = jsonResponse.List.sort( function(a, b) {
var nameA = a.paramater.toLowerCase(),
nameB = b.paramater.toLowerCase();
return nameA.localeCompare(nameB);
}
这是我正在使用的排序功能,但它不起作用。我已经有了 JSON 响应,我需要根据我发送的参数在运行时进行排序。
function sortItems(jsonResponse, paramater) {
var sorted = jsonResponse.JsonResult.List.sort(function(a, b) {
var nameA = a[paramater].toLowerCase(), //take note, []
nameB = b[paramater].toLowerCase(); //same here
return nameA.localeCompare(nameB);
});
}
第二个参数"paramater"是一个字符串,表示要查找的键,而不是直接字段访问器语句。因此,无法使用点运算符从 json 访问它。
另外,请注意:它应该是:
jsonResponse.JsonResult.List.sort
不久前,我想做同样的事情:请参阅此处的一些技巧:
Stackoverflow:在 JavaScript 中对自定义对象的数组进行排序
这里有一个 Js 小提琴给你一个,它会给你一个更深入的见解。
http://jsfiddle.net/spechackers/EdAWL/
<script type="text/javascript">
onerror = function (a, b, c) {
alert([a, b, c]);
};
</script>
<script type="text/javascript">
var x = {
"JsonResult": {
"List": [{
"Subject": "My book report on J. K. Rowling's <u>Harry Potter</u> series.",
"Date": "Jan 25th 2009",
"Type": "Book Report",
"Class": "English"
}, {
"Subject": "My book report on Charles Dickens' <u>Oliver Twist</u> novel.",
"Date": "May 1st 2003",
"Type": "Book Report",
"Class": "English"
}, {
"Subject": "My book report on J. R. R. Tolkien's <u>The Lord of the Rings</u> series.",
"Date": "Aug 7th 2007",
"Type": "Book Report",
"Class": "English"
}, {
"Subject": "The civil war in a nutshell.",
"Date": "Feb 26th 2009",
"Type": "Essay",
"Class": "History"
}, {
"Subject": "How does the republican party manage if we life in a democracy?",
"Date": "Apr 5th 2010",
"Type": "Essay",
"Class": "Government"
}, {
"Subject": "A bogus entry",
"Date": "Jan 1st 2000",
"Type": "Bogus",
"Class": "None"
}, {
"Subject": "Zombie followers don't prove anything.",
"Date": "Nov 2nd 2004",
"Type": "Essay",
"Class": "Religion"
}]
}
};
</script>
<script type="text/javascript">
if (typeof Object.prototype.toSource == 'undefined') {
Object.prototype.toSource = function () {
return (typeof JSON != 'undefined' && typeof JSON.stringify == 'function') ? JSON.stringify(this) : this.toString();
};
}
function sortItems(jsonResponse, paramater) {
var sorted = jsonResponse.List.sort(
function (a, b) {
var nameA = a[paramater].toLowerCase();
var nameB = b[paramater].toLowerCase();
return nameA.localeCompare(nameB);
});
return sorted;
}
function makeRow(ar) {
return "<tr><td>" + ar[0] + "</td><td>" + ar[1] + "</td><td>" + ar[2] + "</td><td>" + ar[3] + "</td></tr>";
}
</script>
<script type="text/javascript">
var mySortedList = sortItems(x.JsonResult, "Subject");
//alert(mySortedList.toSource());
var outTable = "<table>";
outTable += "<tr><th>Subject</th><th>Date</th><th>Type</th><th>Class</th></tr>";
for (var i = 0; i < mySortedList.length; i++) {
outTable += makeRow([mySortedList[i].Subject, mySortedList[i].Date, mySortedList[i].Type, mySortedList[i].Class]);
}
outTable += "</table>";
document.write(outTable);
</script>
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 在不同的javascript数组中对json响应进行排序
- 对我的 JSON 响应进行排序
- 如何使用环回对 GET 响应进行排序
- JSON 响应未根据 SQL 查询正确排序
- 如何按照与请求相同的顺序对 AJAX 响应进行排序
- 如何让 Javascript 和 PHP 以相同的方式对 JSON 响应进行排序
- 拖动到可排序的元素没有响应
- 为什么AJAX响应不是可排序的
- 有没有更简单的方法在JavaScript中对响应对象进行排序?
- 根据cookie中的数据对JSON响应进行排序
- 使网格系统中单元格的垂直重新排序具有响应性
- 创建一个具有固定标题和可调整大小列的响应式、可排序的引导表
- 按姓氏排序JSON响应