【发布时间】:2013-12-10 21:54:10
【问题描述】:
我有一个 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 吗?
【问题讨论】:
-
您可以对数组进行排序,如果您试图在包含数组中具有特定顺序,但对象无法排序,因为对象中不保证顺序。
-
作为旁注,只需将每个循环替换为
for(var i=jsonResult; i--;){ 将向后迭代数组 -
我假设它与 JSON 对象中的数组顺序相同?
-
附注,
.fadeIn应该在所有数据插入之后,不是吗? -
@Izkata - 并不重要,因为前置非常快,并且淡入淡出是异步的,但是将它放在循环中似乎是一个坏主意,所以是的,fadeIn 应该放在每个之后循环,当然,使用 append 可以解决顺序错误的问题。
标签: javascript php jquery arrays json