I am returning an array of banners using json_encode like this from the AJAX handler code (PHP)-
echo json_encode(array("bannersData" =>$bannersData));
The order of data is proper upto here, when it is echoed.
However, in the AJAX response handling code (javascript part), I get a different sorting of the returned object (sorted by banner ID it seems) in chrome Version 26.0.1410.64 m. I am not sure whether we have any option to enforce keeping the original sort order intact.
Here is the code -
$.ajax({
type: "POST",
async: false,
url: posturl,
data:postdata,
dataType: "json",
success: function(msg){
    if($.isEmptyObject(msg.bannersData))
    {
        bannerOptionsHtml = "No Banner available";  
    }
    else
    {
        /*getting unexpectedly sorted result here*/
    }
});
Example data-
Input
When I do echo json_encode(), following is original ordering of data - 
'fggd'             [12658]
banner 2           [12653]
Copy 2 of banner 1 [12655]
Copy 3 of banner 1 [12656]
Copy 4 of banner 1 [12657]
sdfds = 'xyz'      [12654]
Outputs
But, following is what I get in AJAX response -
In chrome (sorting happening based on banner ID, it seems - R.H.S. column below is banner ID)
Test                [12652]
banner 2            [12653]
sdfds = 'xyz'       [12654]
Copy 2 of banner 1  [12655]
Copy 3 of banner 1  [12656]
Copy 4 of banner 1  [12657]
'fggd'              [12658]
In firefox (as expected)
'fggd'             [12658]
banner 2           [12653]
Copy 2 of banner 1 [12655]
Copy 3 of banner 1 [12656]
Copy 4 of banner 1 [12657]
sdfds = 'xyz'      [12654]
 
     
     
    