Javascript 解析来自服务器的JSON并重新排序
我调用一个API并输出一个JSON(见下文)。我可以通过使用AJAX进行解析。我想知道我怎么能Javascript 解析来自服务器的JSON并重新排序,javascript,jquery,json,Javascript,Jquery,Json,我调用一个API并输出一个JSON(见下文)。我可以通过使用AJAX进行解析。我想知道我怎么能 根据日期对数据重新排序(首先是最新的),然后 只显示前三个 JSON输出 { "beds": { "casper": { "name": "angel", "description": "lorem ipsum", "orderDate": "09/20/2018" }, "
{
"beds": {
"casper": {
"name": "angel",
"description": "lorem ipsum",
"orderDate": "09/20/2018"
},
"tuft": {
"name": "relax",
"description": "lorem ipsum",
"orderDate": "05/12/2018"
},
"saatva": {
"name": "heaven",
"description": "lorem ipsum",
"orderDate": "07/03/2018"
},
"dream": {
"name": "sweet",
"description": "lorem ipsum",
"orderDate": "04/28/2018"
},
"rocky": {
"name": "painful",
"description": "lorem ipsum",
"orderDate": "02/15/2018"
}
}
}
这是我在AJAX成功后的代码
$.ajax({
...
...
...
success: function(result) {
$('.container-for-beds').each(function(i) {
$(this).prepend(
'<div class="bedBrand"><p>' + result.beds[i].name + '</p><p>' + result.beds[i].description + '</p><p>' + result.beds[i].orderDate + '</p></div>'
);
});
}
});
$.ajax({
...
...
...
成功:功能(结果){
$('.container for beds')。每个(函数(i){
$(此)。预结束(
“”+result.beds[i].名称+”'+result.beds[i].说明+”'+result.beds[i].订单日期+”'
);
});
}
});
如果一切顺利,HTML应该看起来像
<div class="container-for-beds">
<div class="bedBrand">
<p>heaven by saatva</p>
<p>lorem ipsum</p>
<p>07/03/2018</p>
</div>
<div class="bedBrand">
<p>relax by tuft</p>
<p>lorem ipsum</p>
<p>05/12/2018</p>
</div>
<div class="bedBrand">
<p>angel by casper</p>
<p>lorem ipsum</p>
<p>04/20/2018</p>
</div>
</div>
萨特瓦天堂酒店
同侧眼睑
2018年3月7日
松一口气
同侧眼睑
2018年5月12日
凯斯珀的天使
同侧眼睑
2018年4月20日
感谢您的洞察力
我可以通过使用AJAX进行解析
ajax的目标是进行异步调用,它可能不进行解析
其次,js对象中键的顺序没有保证。话虽如此,您可以从这个对象创建一个新数组,并根据日期对数组进行排序。使用slice
方法获取前三个对象
var数据={
“床位”:{
“卡斯珀”:{
“姓名”:“天使”,
“描述”:“lorem ipsum”,
“订单日期”:“2018年9月20日”
},
“簇”:{
“姓名”:“放松”,
“描述”:“lorem ipsum”,
“订单日期”:“2018年5月12日”
},
“萨特瓦”:{
“名字”:“天堂”,
“描述”:“lorem ipsum”,
“订单日期”:“2018年3月7日”
},
“梦想”:{
“姓名”:“甜蜜”,
“描述”:“lorem ipsum”,
“订单日期”:“2018年4月28日”
},
“洛奇”:{
“名字”:“痛苦”,
“描述”:“lorem ipsum”,
“订单日期”:“2018年2月15日”
}
}
};
var createArray=[];
//使用for..in循环对象
用于(数据中的键。床){
var currentKey=data.beds[keys];
//将嵌套对象键名称添加为属性
currentKey.parent=密钥;
//{“名称”:“天使”,“描述”:“lorem ipsum”,“订单日期”:“09/20/2018”,“家长”:“casper”}
createArray.push(currentKey)
}
var sortedByDate=createArray.sort(函数(a,b){
//根据日期排序,它将按升序排序
//更改为新日期(b.orderDate)-新日期(b.orderDate)
//降序
返回新日期(a.orderDate)-新日期(b.orderDate)
}).切片(0,3)
console.log(sortedByDate)
您是否尝试过自己编写代码?请发布它,以便我们可以查看它并帮助调试。也许您需要将结果推送到另一个数组中并进行排序