我有一个PHP文件,它会抓取某些类的外部URL,然后将它们放入一个数组中。然后我使用json_encode()编码数组。数组按其必须迭代的顺序排列,但由于某种原因,JSON不按正确的顺序迭代。它按降序排列,而不是按升序排列。
以下是返回的JSON示例:
[{
"id":1,
"info":
{
"title":"Design Prepaid cards with HD quality ",
"titleurl":"http:\/\/www.peopleperhour.com\/job\/design-prepaid-ards-with-hd-quality-380258",
"price":"\u00a3 400 ",
"urgent":"Urgent",
"jobID":"380258"
}
},
{
"id":2,
"info":
{
"title":"Charted accontant",
"titleurl":"http:\/\/www.peopleperhour.com\/job\/charted-accontant-380251",
"price":"\u00a3 60 ",
"urgent":"Urgent",
"jobID":"380251"
}
}]
这就是我目前正在显示JSON的方式:
var jsonResults = JSON.parse(data);
var count = (jsonResults.length);
// Iterate Through Results
$.each(jsonResults, function(key, value)
{
// Display Data
$('#resultsPanel').fadeIn('slow');
$('#resultsPanel').prepend(
'<div class="item" id="'+ value.info.jobID +'">'+
'<div class="title"><a href="'+ value.info.titleurl+'" target="_blank">'+ value.info.title +'</a></div>'+
'<div class="price">'+ value.info.price +'</div>'+
'</div>'
);
});
是否可以订购JSON?
答案 0 :(得分:4)
见这部分:
$('#resultsPanel').prepend(
“prepend”意味着“放在开头”,这将颠倒你的列表(将项目1放在开头,然后将项目2放在开头,等等......)。我很确定你的意思是:$('#resultsPanel').append(
答案 1 :(得分:1)
对象是无序集。您无法以跨浏览器的方式指定订单。没有原始订单的概念,除非它已经按规则排序。
然后对服务器上的数据进行排序,然后以相同的排序顺序对其进行枚举。
修改强>
正如我在下面提到的,我的jQuery知识很少,但也许这样的东西可以工作:
var jsonResults = JSON.parse(data);
Object.keys(jsonResults).reverse().forEach(function (key, value) {
// do something here
});
答案 2 :(得分:0)
还有一个类似的问题可能会给你答案: sort json object in javascript