求以下json的遍历方法,感谢!!!var carData={"'34'":{"name":"A \u963f\u65af\u987f\u00b7\u9a6c\u4e01"
,"brand":{"'61'":{"name":"\u963f\u65af\u987f\u00b7\u9a6c\u4e01"
,"pserise":{"'298'":{"name":"Rapide","import":"2","model":{"'11563'":"Rapide 6.0L S","'5290'":"Rapide 6.0L"}},"'299'":{"name":"V12 Vantage","import":"2"
,"model":{"'11446'":"V12 Vantage 6.0L S","'8947'":"V12 Vantage 6.0 Roadster","'5291'":"V12 Vantage 6.0 Manual Coupe"}},"'629'":{"name":"V12 Zagato","import":"2"
,"model":{"'9037'":"V12 Zagato 6.0L"}},"'300'":{"name":"V8 Vantage","import":"2"
,"model":{"'5292'":"V8 Vantage 4.7 S Coupe","'5293'":"V8 Vantage 4.7 S Roadster","'5294'":"V8 Vantage 4.7 Sportshift Coupe","'5295'":"V8 Vantage 4.7 Sportshift Roadster"}},"'643'":{"name":"Vanquish","import":"2","model":{"'9057'":"Vanquish 6.0 \u57fa\u672c\u578b"}},"'301'":{"name":"Virage","import":"2"
,"model":{"'5301'":"Virage 6.0 Coupe","'5302'":"Virage 6.0 Volante"}},
"'302'":{"name":"\u963f\u65af\u987f\u9a6c\u4e01DB9","import":"2"
,"model":{"'10244'":"\u963f\u65af\u987f\u9a6c\u4e01DB9 6.0L Coupe"}}
,"'303'":{"name":"\u963f\u65af\u987f\u9a6c\u4e01DBS","import":"2"
,"model":{"'5311'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Touchtronic Coupe","'5312'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Manual Volante","'5313'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Touchtronic Volante","'5314'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Manual Coupe"}}}}}}}

解决方案 »

  1.   

    用for in 来遍历
    for(var name in carData) {
        alert(name+":"+carData[name]);
    }
      

  2.   


    var carData = {
                "'34'": {
                    "name": "A 阿斯顿·马丁",
                    "brand": {
                        "'61'": {
                            "name": "阿斯顿·马丁",
                            "pserise": {
                                "'298'": {
                                    "name": "Rapide",
                                    "import": "2",
                                    "model": {
                                        "'11563'": "Rapide 6.0L S",
                                        "'5290'": "Rapide 6.0L"
                                    }
                                },
                                "'299'": {
                                    "name": "V12 Vantage",
                                    "import": "2",
                                    "model": {
                                        "'11446'": "V12 Vantage 6.0L S",
                                        "'8947'": "V12 Vantage 6.0 Roadster",
                                        "'5291'": "V12 Vantage 6.0 Manual Coupe"
                                    }
                                },
                                "'629'": {
                                    "name": "V12 Zagato",
                                    "import": "2",
                                    "model": {
                                        "'9037'": "V12 Zagato 6.0L"
                                    }
                                },
                                "'300'": {
                                    "name": "V8 Vantage",
                                    "import": "2",
                                    "model": {
                                        "'5292'": "V8 Vantage 4.7 S Coupe",
                                        "'5293'": "V8 Vantage 4.7 S Roadster",
                                        "'5294'": "V8 Vantage 4.7 Sportshift Coupe",
                                        "'5295'": "V8 Vantage 4.7 Sportshift Roadster"
                                    }
                                },
                                "'643'": {
                                    "name": "Vanquish",
                                    "import": "2",
                                    "model": {
                                        "'9057'": "Vanquish 6.0 基本型"
                                    }
                                },
                                "'301'": {
                                    "name": "Virage",
                                    "import": "2",
                                    "model": {
                                        "'5301'": "Virage 6.0 Coupe",
                                        "'5302'": "Virage 6.0 Volante"
                                    }
                                },
                                "'302'": {
                                    "name": "阿斯顿马丁DB9",
                                    "import": "2",
                                    "model": {
                                        "'10244'": "阿斯顿马丁DB9 6.0L Coupe"
                                    }
                                },
                                "'303'": {
                                    "name": "阿斯顿马丁DBS",
                                    "import": "2",
                                    "model": {
                                        "'5311'": "阿斯顿马丁DBS 6.0 Touchtronic Coupe",
                                        "'5312'": "阿斯顿马丁DBS 6.0 Manual Volante",
                                        "'5313'": "阿斯顿马丁DBS 6.0 Touchtronic Volante",
                                        "'5314'": "阿斯顿马丁DBS 6.0 Manual Coupe"
                                    }
                                }
                            }
                        }
                    }
                }
            };
    按照结构,一直遍历吧。
      

  3.   


    var carData={"'34'":{"name":"A \u963f\u65af\u987f\u00b7\u9a6c\u4e01"
    ,"brand":{"'61'":{"name":"\u963f\u65af\u987f\u00b7\u9a6c\u4e01"
    ,"pserise":{"'298'":{"name":"Rapide","import":"2","model":{"'11563'":"Rapide 6.0L S","'5290'":"Rapide 6.0L"}},"'299'":{"name":"V12 Vantage","import":"2"
    ,"model":{"'11446'":"V12 Vantage 6.0L S","'8947'":"V12 Vantage 6.0 Roadster","'5291'":"V12 Vantage 6.0 Manual Coupe"}},"'629'":{"name":"V12 Zagato","import":"2"
    ,"model":{"'9037'":"V12 Zagato 6.0L"}},"'300'":{"name":"V8 Vantage","import":"2"
    ,"model":{"'5292'":"V8 Vantage 4.7 S Coupe","'5293'":"V8 Vantage 4.7 S Roadster","'5294'":"V8 Vantage 4.7 Sportshift Coupe","'5295'":"V8 Vantage 4.7 Sportshift Roadster"}},"'643'":{"name":"Vanquish","import":"2","model":{"'9057'":"Vanquish 6.0 \u57fa\u672c\u578b"}},"'301'":{"name":"Virage","import":"2"
    ,"model":{"'5301'":"Virage 6.0 Coupe","'5302'":"Virage 6.0 Volante"}},
    "'302'":{"name":"\u963f\u65af\u987f\u9a6c\u4e01DB9","import":"2"
    ,"model":{"'10244'":"\u963f\u65af\u987f\u9a6c\u4e01DB9 6.0L Coupe"}}
    ,"'303'":{"name":"\u963f\u65af\u987f\u9a6c\u4e01DBS","import":"2"
    ,"model":{"'5311'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Touchtronic Coupe","'5312'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Manual Volante","'5313'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Touchtronic Volante","'5314'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Manual Coupe"}}}}}}}
    ;
    function df(io)
    {
    var dd = "<ul>";
    for (var i in io)
    dd+="<li><b>"+i+":</b> "+(typeof(io[i])=="object"?df(io[i]):io[i])+"</li>";
    dd+="</ul>";
    return dd;
    }
    document.write(df(carData));;
      

  4.   

    结构都知道,用[]或者.取数据就行了,由于你的有些键名称不是javascript的合法变量名称,所有要用[]来取
      

  5.   

    老大,你这种方法是不是直接能遍历N级的json?
      

  6.   


    var carData={"'34'":{"name":"A \u963f\u65af\u987f\u00b7\u9a6c\u4e01"
    ,"brand":{"'61'":{"name":"\u963f\u65af\u987f\u00b7\u9a6c\u4e01"
    ,"pserise":{"'298'":{"name":"Rapide","import":"2","model":{"'11563'":"Rapide 6.0L S","'5290'":"Rapide 6.0L"}},"'299'":{"name":"V12 Vantage","import":"2"
    ,"model":{"'11446'":"V12 Vantage 6.0L S","'8947'":"V12 Vantage 6.0 Roadster","'5291'":"V12 Vantage 6.0 Manual Coupe"}},"'629'":{"name":"V12 Zagato","import":"2"
    ,"model":{"'9037'":"V12 Zagato 6.0L"}},"'300'":{"name":"V8 Vantage","import":"2"
    ,"model":{"'5292'":"V8 Vantage 4.7 S Coupe","'5293'":"V8 Vantage 4.7 S Roadster","'5294'":"V8 Vantage 4.7 Sportshift Coupe","'5295'":"V8 Vantage 4.7 Sportshift Roadster"}},"'643'":{"name":"Vanquish","import":"2","model":{"'9057'":"Vanquish 6.0 \u57fa\u672c\u578b"}},"'301'":{"name":"Virage","import":"2"
    ,"model":{"'5301'":"Virage 6.0 Coupe","'5302'":"Virage 6.0 Volante"}},
    "'302'":{"name":"\u963f\u65af\u987f\u9a6c\u4e01DB9","import":"2"
    ,"model":{"'10244'":"\u963f\u65af\u987f\u9a6c\u4e01DB9 6.0L Coupe"}}
    ,"'303'":{"name":"\u963f\u65af\u987f\u9a6c\u4e01DBS","import":"2"
    ,"model":{"'5311'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Touchtronic Coupe","'5312'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Manual Volante","'5313'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Touchtronic Volante","'5314'":"\u963f\u65af\u987f\u9a6c\u4e01DBS 6.0 Manual Coupe"}}}}}}}
    var rs=[];
    function getvs(o){
    for(var k in o) {
    typeof(o[k])=='object'?getvs(o[k] ):rs.push( k+':'+o[k]  )
      }
    }
    getvs(carData);
    document.write( rs.join('<br/>') );
      

  7.   

    用递归遍历,代码如下,将你的JSON对象,转换层JSON字符串
    alert(jsonToStr(carData))
    function jsonToStr(json){
    if(json instanceof Array){ //如果是数组
    var tmpArr = [];
    for(var i=0;i<json.length;i++){
    tmpArr.push(jsonToStr(json[i])); //递归
    }
    return '['+tmpArr.join(",")+']'; //如果json是数组,那么最终会return这个
    }else if(json instanceof Object){ //如果是对象
    var tmpArr = [];
    for(var n in json){
    tmpArr.push('"'+n+'":'+jsonToStr(json[n])); //递归
    }
    return '{'+tmpArr.join(",")+'}'; //如果json是对象,那么最终会return这个
    }else if(typeof json == 'string'){ //如果是字符串
    return '"'+json.replace(/(\\|\")/g,"\\$1").replace(/\n/g,"\\n")+'"'; //如果json是字符串,就过滤掉斜杠、双引号、换行再返回
    }else{
    return json; //否则就原样返回
    }
    }
      

  8.   

    用递归遍历,代码如下,将你的JSON对象,转换层JSON字符串
    alert(jsonToStr(carData))function jsonToStr(json){
    if(json instanceof Array){ //如果是数组
    var tmpArr = [];
    for(var i=0;i<json.length;i++){
    tmpArr.push(jsonToStr(json[i])); //递归
    }
    return '['+tmpArr.join(",")+']'; //如果json是数组,那么最终会return这个
    }else if(json instanceof Object){ //如果是对象
    var tmpArr = [];
    for(var n in json){
    tmpArr.push('"'+n+'":'+jsonToStr(json[n])); //递归
    }
    return '{'+tmpArr.join(",")+'}'; //如果json是对象,那么最终会return这个
    }else if(typeof json == 'string'){ //如果是字符串
    return '"'+json.replace(/(\\|\")/g,"\\$1").replace(/\n/g,"\\n")+'"'; //如果json是字符串,就过滤掉斜杠、双引号、换行再返回
    }else{
    return json; //否则就原样返回
    }
    }
      

  9.   

    如上图片,遍历pserise对象,所以第一步需要先得到pserise对象,是个数组,再对该数组遍历
      

  10.   

    另一个,你的json里,键怎么可以用数字啊,这样无法用对象调用的