var json=[{name:"张三",age:25,sex:"男"},{name:"李四",age:35,sex:"男"},{name:"王五",age:45,sex:"女"}] 
function jsonToArray(){
   //这里要写个函数
}
想通过jsonToArray转化为以下格式://初始化演示数据
personObj1=new Object()
personObj1.name="张三";
personObj1.sex="男";
personObj1.age=34;
personObj2=new Object()
personObj2.name="李四";
personObj2.sex="女";
personObj2.age=50; var psnArray = new Array();
psnArray[0] = personObj1;
psnArray[1] = personObj2;

解决方案 »

  1.   

    var json='[{name:"张三",age:25,sex:"男"},{name:"李四",age:35,sex:"男"},{name:"王五",age:45,sex:"女"}]';
    function jsonToArray(str){
        var reg=/\{.*?\}/g;
    str=str.match(reg);
    var arr=[];
    for(var i in str){
    arr.push(eval("("+str[i]+")"));
    }
    return arr;
    }
    var arr=jsonToArray(json);
    for(var i in arr){
    document.write(arr[i].name+":"+arr[i].age+":"+arr[i].sex+"<br/>");
    }
    这样?
      

  2.   

    还需要个key,如果我想提取json中name为"张三"的数据,只将这一部分转换为数组呢?
      

  3.   

    <script type="text/javascript">
        var on=[{name:"张三",age:25,sex:"男"},{name:"李四",age:35,sex:"男"},{name:"王五",age:45,sex:"女"}];
        function jsonToArray(){
            var l=on.length;
            var psnArray = new Array();
            for(var i=0;i<l;i++){
                window["personObj"+(i+1)]=new Object();
                window["personObj"+(i+1)].name=on[i].name;
                window["personObj"+(i+1)].sex=on[i].sex;
                window["personObj"+(i+1)].age=on[i].age;
                psnArray[i]=window["personObj"+(i+1)];
            }
        }
    </script>
      

  4.   

    可以的<script type="text/javascript">
        var tt=new Object();
            tt.b1=1;
            tt.b2=2;
            tt.b3=3;
            tt.b4=4;
        var i=3;
        alert(tt["b"+i]);
    </script>
      

  5.   


    var on=[{name:"张三",age:25,sex:"男"},{name:"李四",age:35,sex:"男"},{name:"王五",age:45,sex:"女"}]
        function jsonToArray(str){
            var l=str.length;
            var psnArray = new Array();
            for(var i=0;i<l;i++){
                window["personObj"+(i+1)]=new Object();
                for(var key in str[i]){
                    window["personObj"+(i+1)].key+"="+str[i][key];
                 }         
                psnArray[i]=window["personObj"+(i+1)];
            }
            alert (psnArray[2].age);
        }
        jsonToArray(on);我这样写出来就是动态获取key,但是获得的是undefined
      

  6.   

    var json='[{name:"张三",age:25,sex:"男"},{name:"李四",age:35,sex:"男"},{name:"王五",age:45,sex:"女"}]';
    function jsonToArray(str){
        var reg=/\{.*?\}/g;
    str=str.match(reg);
    var arr=[];
    for(var i in str){
    arr.push(eval("("+str[i]+")"));
    }
    return arr;
    }
    var arr=jsonToArray(json);
    for(var i in arr){
    for(var j in arr[i]){
    document.write(i+":"+j+"="+arr[i][j]+"<br/>");
    }
    }
    j是你要的key吗?
      

  7.   

    就差一点点了:
        var on=[{name:"张三",age:25,sex:"男"},{name:"李四",age:35,sex:"男"},{name:"王五",age:45,sex:"女"}]
        function jsonToArray(str){
            var l=str.length;
            var psnArray = new Array();
            for(var i=0;i<l;i++){
                window["personObj"+(i+1)]=new Object();
                for(var key in str[i]){
                    window["personObj"+(i+1)][key]=str[i][key];
                }
                psnArray[i]=window["personObj"+(i+1)];
            }
            alert (psnArray[2].age);
        }
        jsonToArray(on);
      

  8.   

    谢谢楼上的
    还有个大问题看下面的jsonvar str=[
    {id:"1",name:"张三",age:12},
    {id:"2",name:"李四",age:34},
    {id:"3",name:"王五",age:38},
    {id:"4",name:"赵六",age:40},
    {id:"5",name:"使命召唤",age:20},
    {id:"6",name:"黑色行动",age:32}
    ];
    根据str的信息制作了一个表格,每条信息前有个input[type=checkbox],我想提取选中状态中的json,并生成数组,并且我想随意调取选中状态中的name、age
      

  9.   


    这里的windown是什么意思呀