我读出来的数据是:{"status":0,"data":{"rw":{"12":{"name":"\u98ce\u6b62\u5982\u6b87","vip_level":"8","union_name":"\u9752\u8863\u697c","level":"66","renown":"93304","ticket":"0","sum_fpower":"412052","trend":0,"rank":1},"636":{"name":"\u725b\u5976\u5e03\u4e01","vip_level":"7","union_name":"\u9752\u8863\u697c","level":"62","renown":"62691","ticket":"0","sum_fpower":"321352","trend":0,"rank":2},"292":{"name":"\u5c91\u8a89","vip_level":"6","union_name":"\u9752\u8863\u697c","level":"60","renown":"46174","ticket":"0","sum_fpower":"263584","trend":0,"rank":3},"342":{"name":"\u590f\u4faf\u9091","vip_level":"4","union_name":"\u9752\u8863\u697c","level":"57","renown":"28604","ticket":"0","sum_fpower":"147766","trend":0,"rank":4},"31":{"name":"\u65e0\u5929","vip_level":"5","union_name":"\u9752\u8863\u697c","level":"57","renown":"28237","ticket":"0","sum_fpower":"144644","trend":0,"rank":5},"128":{"name":"\u865e\u4e2d\u9053","vip_level":"3","union_name":"\u9752\u8863\u697c","level":"56","renown":"30753","ticket":"0","sum_fpower":"148505","trend":0,"rank":6},"297":{"name":"\u8001\u5934\u5b50","vip_level":"4","union_name":"\u9752\u8863\u697c","level":"55","renown":"25296","ticket":"0","sum_fpower":"140126","trend":0,"rank":7},"407":{"name":"\u97e6\u4eba\u6770","vip_level":"2","union_name":"\u9752\u8863\u697c","level":"55","renown":"21754","ticket":"0","sum_fpower":"109610","trend":0,"rank":8},"153":{"name":"\u79e6\u9053\u7f61","vip_level":"1","union_name":"\u9752\u8863\u697c","level":"54","renown":"19211","ticket":"0","sum_fpower":"120409","trend":0,"rank":9},"345":{"name":"\u5fa1\u5251","vip_level":"4","union_name":"\u9752\u8863\u697c","level":"52","renown":"16255","ticket":"0","sum_fpower":"118658","trend":0,"rank":10}}}}$.ajax(
    {
        type:"GET",
        url:"rank.ashx",
        data:{server:ServerID,order:Type},
        dataType:'json',
cache:false,
        success: function(datas){
var rw=datas.data.rw,item;for (var j in rw) {
 
trHtml += '<td class="lie2"><span class="jue_te">'+item.name+'</span></td>';
trHtml += '<td class="lie3"><span class="jue_te">'+item.level+'</span></td>'; trHtml += '</tr>';}
}
 })结果 level 上不是上面的顺序排的,有点像随机是怎么回事json

解决方案 »

  1.   

    还有一个忘记写了:  item = rw[j];
      

  2.   

    正常来说是按结果:xxx1 66
                      xxx2 62
                      xxx3 60
                      xxx4 57
      

  3.   

    你的什么浏览器?我这里测试你给的字符串是按照循序的,不过我是eval,不是用jq,难道jq转为json时修改过循序了。。?
      

  4.   


    var d = eval('({"status":0,"data":{"rw":{"12":{"name":"\u98ce\u6b62\u5982\u6b87","vip_level":"8","union_name":"\u9752\u8863\u697c","level":"66","renown":"93304","ticket":"0","sum_fpower":"412052","trend":0,"rank":1},"636":{"name":"\u725b\u5976\u5e03\u4e01","vip_level":"7","union_name":"\u9752\u8863\u697c","level":"62","renown":"62691","ticket":"0","sum_fpower":"321352","trend":0,"rank":2},"292":{"name":"\u5c91\u8a89","vip_level":"6","union_name":"\u9752\u8863\u697c","level":"60","renown":"46174","ticket":"0","sum_fpower":"263584","trend":0,"rank":3},"342":{"name":"\u590f\u4faf\u9091","vip_level":"4","union_name":"\u9752\u8863\u697c","level":"57","renown":"28604","ticket":"0","sum_fpower":"147766","trend":0,"rank":4},"31":{"name":"\u65e0\u5929","vip_level":"5","union_name":"\u9752\u8863\u697c","level":"57","renown":"28237","ticket":"0","sum_fpower":"144644","trend":0,"rank":5},"128":{"name":"\u865e\u4e2d\u9053","vip_level":"3","union_name":"\u9752\u8863\u697c","level":"56","renown":"30753","ticket":"0","sum_fpower":"148505","trend":0,"rank":6},"297":{"name":"\u8001\u5934\u5b50","vip_level":"4","union_name":"\u9752\u8863\u697c","level":"55","renown":"25296","ticket":"0","sum_fpower":"140126","trend":0,"rank":7},"407":{"name":"\u97e6\u4eba\u6770","vip_level":"2","union_name":"\u9752\u8863\u697c","level":"55","renown":"21754","ticket":"0","sum_fpower":"109610","trend":0,"rank":8},"153":{"name":"\u79e6\u9053\u7f61","vip_level":"1","union_name":"\u9752\u8863\u697c","level":"54","renown":"19211","ticket":"0","sum_fpower":"120409","trend":0,"rank":9},"345":{"name":"\u5fa1\u5251","vip_level":"4","union_name":"\u9752\u8863\u697c","level":"52","renown":"16255","ticket":"0","sum_fpower":"118658","trend":0,"rank":10}}}})');
    var o = d.data.rw;
    for(k in o)alert(k)没问题,IE7,8,firefox都是对的。。不行rw就改成JSON数组,不用键名称的格式,可能是jq生成json对象时修改过循序什么的了
      

  5.   

    测试IE6,firefox都正常,你那个不对的也不是随机,是按照rw里的key排序了,12的在最前面,636在最后面12 风止如殇 66 
    636 牛奶布丁 62 
    292 岑誉 60 
    342 夏侯邑 57 
    31 无天 57 
    128 虞中道 56 
    297 老头子 55 
    407 韦人杰 55 
    153 秦道罡 54 
    345 御剑 52 
      

  6.   


    那为什么会按key排啊,我是按后台给的数据排的,怎么操作
      

  7.   


    根据 ECMA-262(ECMAScript)第三版中描述,for-in 语句的属性遍历的顺序是由对象定义时属性的书写顺序决定的。在现有最新的 ECMA-262(ECMAScript)第五版规范中,对 for-in 语句的遍历机制又做了调整,属性遍历的顺序是没有被规定的。新版本中的属性遍历顺序说明与早期版本不同,这将导致遵循 ECMA-262 第三版规范内容实现的 JavaScript 解析引擎在处理 for-in 语句时,与遵循第五版规范实现的解析引擎,对属性的遍历顺序存在不一致的问题。所以你的脚本在不同版本浏览器下运行,可能会得到不一样的结果,所以依赖对象属性顺序并不可靠,建议 rw 改成对象数组
    {rw:[{"id":12,"name":"\u98ce\u6b62\u5982\u6b87","vip_level":"8","union_name":"\u9752\u8863\u697c","level":"66","renown":"93304","ticket":"0","sum_fpower":"412052","trend":0,"rank":1},
    {"id":13,................}]}
    这个顺序是绝对不会变的
      

  8.   

    其实自己排也很简单
    var rw=datas.data.rw,item;
    var trHtml = "";
    var ary = [];
    for (var j in rw) {
    ary.push(rw[j]);
    }
    ary.sort(function(a,b){
    return b.level - a.level;
    });
    for (var j in ary) {
    var item = ary[j];
    trHtml += '<tr><td class="lie2"><span class="jue_te">'+item.name+'</span></td>';
    trHtml += '<td class="lie3"><span class="jue_te">'+item.level+'</span></td>';
    trHtml += '</tr>';
    }
      

  9.   


    这个可以,但为什么alert(j)输出0-9后便输出字符,一些关键字是什么原因
      

  10.   

    因为是新构造的数组,所以键是从0开始的,要是想保留原来的键就把它存进 rw[j] 里面for (var j in rw) {
        rw[j].key = j;
        ary.push(rw[j]);
    }
      

  11.   

    意思是,以前写的json顺序的,都不需要重新再排序,用for(...in ..)读出来都是按顺序的,但这次却还要再次排序,而且还有不重排序的话的只有firefox是正常的,其它不正常