IE8和火狐不支持eval后获取其中子对象

allen_limi 发布于 2011/10/21 11:04
阅读 2K+
收藏 0

"equipments" : [
        {
            "value" : 200
        },
          {
            "value" : 20
        }
    ]

是一个json数组,我在IE7及其它版本都可以使用json["equipments"]方法,如果使用IE8和火狐则在此处报错,说没有undefined

大家帮忙看下哦

加载中
0
blur
blur
var equObj=json.equipments即可。
0
designer
designer
<script type="text/javascript">
    window.onload = function(){
        var json = {
            "equipments" : [{
                "value" : 200
            },{
                "value" : 20
            }
            ]
        };
        //alert(json.equipments);
        alert(json["equipments"]);
   
    }

  </script>

不大明白你啥意思,你能不能把代码上全一点啊...

0
allen_limi
allen_limi

引用来自“designer”的答案

<script type="text/javascript">
    window.onload = function(){
        var json = {
            "equipments" : [{
                "value" : 200
            },{
                "value" : 20
            }
            ]
        };
        //alert(json.equipments);
        alert(json["equipments"]);
   
    }

  </script>

不大明白你啥意思,你能不能把代码上全一点啊...

{
    "info" : {
        "type" : 0,
        "id" : 2
    },
    "equipments" : [
        {
            "value" : 200
        },
        {
            "value" : 113
        },
        {
            "value" : 84
        }
    ],
    "generals" : [
        {
            "nums" : 0
        }
    ]
}

$.getJSON("getJsonInfo.html",function(json) {

var type=json["info"].type;//这行都正常

var equObj=eval(json["equipments"]);//这行报错,说json["equipments"]未定义

}

0
designer
designer
你确定一下你的回调函数传回的json里有没equipments这个,没有的话自然取不到
0
大大
大大
getJson已经返回的是json了啊,在 eval当然没了
0
allen_limi
allen_limi

引用来自“大大”的答案

getJson已经返回的是json了啊,在 eval当然没了

但是这样写:

var equObj=json["equipments"];或者var equObj=json.equipments;

都报错

0
allen_limi
allen_limi

引用来自“blur”的答案

var equObj=json.equipments即可。
这样也不行,还是“未定义”
返回顶部
顶部