使用以下方法无法遍历出 各时间对应的 json长度,如 20130310 下的长度为3 ,20130311 下的长度也为3for(var day in data_arr1){
var tmp_length = data_arr1[day].length;
}
{
    "data_arr1": {
        "20130310": {
            "240*320": "3", 
            "320*480": "2", 
            "800×480": "4"
        }, 
        "20130311": {
            "240*320": "2", 
            "320*480": "3", 
            "800×480": "3"
        }, 
        "20130312": {
            "240*320": "1", 
            "320*480": "5", 
            "800×480": "3"
        }, 
        "20130313": {
            "240*320": "3", 
            "320*480": "7", 
            "800×480": "9"
        }, 
        "20130314": {
            "240*320": "4", 
            "320*480": "6", 
            "800×480": "3"
        }
    }
}

解决方案 »

  1.   

    <script type="text/javascript">
    var a={
        "data_arr1": {
            "20130310": {
                "240*320": "3", 
                "320*480": "2", 
                "800×480": "4"
            }, 
            "20130311": {
                "240*320": "2", 
                "320*480": "3", 
                "800×480": "3"
            }, 
            "20130312": {
                "240*320": "1", 
                "320*480": "5", 
                "800×480": "3"
            }, 
            "20130313": {
                "240*320": "3", 
                "320*480": "7", 
                "800×480": "9"
            }, 
            "20130314": {
                "240*320": "4", 
                "320*480": "6", 
                "800×480": "3"
            }
        }
    }
    for(var i in a["data_arr1"]){
    var x=0;
    for(var j in a["data_arr1"][i]){
    x++;
    }
    alert(i+":"+x);
    }
    </script>
    这样试试
      

  2.   


    var data = {
        "data_arr1": {
            "20130310": {
                "240*320": "3", 
                "320*480": "2", 
                "800×480": "4"
            }, 
            "20130311": {
                "240*320": "2", 
                "320*480": "3", 
                "800×480": "3"
            }, 
            "20130312": {
                "240*320": "1", 
                "320*480": "5", 
                "800×480": "3"
            }, 
            "20130313": {
                "240*320": "3", 
                "320*480": "7", 
                "800×480": "9"
            }, 
            "20130314": {
                "240*320": "4", 
                "320*480": "6", 
                "800×480": "3"
            }
        }
    };
    var count = 0;
    for(var day in data.data_arr1){
    count = 0;
    for(var i in data.data_arr1[day]){
    if(data.data_arr1[day].hasOwnProperty(i))
    ++count;
    }
    alert(day + '下的长度为 ' + count);
    }
      

  3.   

    1楼正解,Object类型的对象无length属性,数组才有
    "20130310": {
                "240*320": "3", 
                "320*480": "2", 
                "800×480": "4"
            }
    "240*320","320*480","800*480"只是"20130310"这个对象的三个属性名,容易混淆的一个地方就是js也可以用obj[attrName]取对象的属性