我有一个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?
参见本部分:
$('#resultsPanel').prepend(
"prepend"的意思是"放在开头",这将颠倒你的列表(把项目1放在开头,然后把项目2放在开头等)。我很确定你的意思是:
$('#resultsPanel').append(
对象是未排序的集合。您不能以跨浏览器兼容的方式指定订单。没有原始订单的概念,除非它已经按照规则进行了排序。
因此,对服务器上的数据进行排序,然后以相同的排序顺序对其进行枚举。
编辑
正如我在下面提到的,我的jQuery知识是最少的,但也许这样的东西可以工作:
var jsonResults = JSON.parse(data);
Object.keys(jsonResults).reverse().forEach(function (key, value) {
// do something here
});
还有一个类似的问题可能会给你答案:在javascript 中对json对象进行排序