Javascript json导致IE出现问题

Javascript json导致IE出现问题,javascript,json,internet-explorer,Javascript,Json,Internet Explorer,我使用带有json字符串的javascript向flash项目发送数据 var flashvars = { xmlFile: 'http://iyt.psu.edu/xml/abington/home.xml', preface: 'http://iyt.psu.edu/', preload: '{"url":"flash/project.swf","x":"375","y":"237","link":"home","tween"

我使用带有json字符串的javascript向flash项目发送数据

        var flashvars = { 
        xmlFile: 'http://iyt.psu.edu/xml/abington/home.xml',
        preface: 'http://iyt.psu.edu/',
        preload: '{"url":"flash/project.swf","x":"375","y":"237","link":"home","tween":{"prop":"y","begin":"0","finish":"-200","duration":"1"}}'
    };

然而,预加载线会导致IE出现问题,有人知道我在做什么吗“除了使用IE,m可能还做错了;^)

可能是
/
需要在JSON字符串中转义。

如果后面有逗号,并且您使用的是FireFox或基于Webkit的浏览器,那么一切看起来都很好。但在IE中,没有更多对象属性的任何尾随逗号都会导致一个不太明显的问题

这将失败。请参见结尾处的额外逗号:

var flashvars = { 
        "xmlFile" : "http://iyt.psu.edu/xml/abington/home.xml",
        "preface" : "http://iyt.psu.edu/",
        "preload" : "{'url': 'flash/project.swf' , 'x': '375 ', 'y': '237', 'link': 'home', 'tween' : {'prop':'y','begin' : '0', 'finish' : '-200' , 'duration' : '1' }}",
}
同样,通过测试的格式正确的JSON也不会带来任何伤害

var flashvars = { 
        "xmlFile" : "http://iyt.psu.edu/xml/abington/home.xml",
        "preface" : "http://iyt.psu.edu/",
        "preload" : "{'url': 'flash/project.swf' , 'x': '375 ', 'y': '237', 'link': 'home', 'tween' : {'prop':'y','begin' : '0', 'finish' : '-200' , 'duration' : '1' }}"
}

但是您粘贴的JSON看起来还可以。此外,Word文档中可能包含撇号。

实际上,您应该使用服务器端或javascript工具对json字符串进行编码,然后AS3将自动解码:

例如,在JSP中:

var flashvars = { 
        xmlFile: 'http://iyt.psu.edu/xml/abington/home.xml',
        preface: 'http://iyt.psu.edu/',
        preload: '<c:out value="{"url":"flash/project.swf","x":"375","y":"237","link":"home","tween":{"prop":"y","begin":"0","finish":"-200","duration":"1"}}'" />'
    };
var flashvars={
xmlFile:'http://iyt.psu.edu/xml/abington/home.xml',
前言:'http://iyt.psu.edu/',
预加载:“”
};

为什么json对象中有json字符串?嗯。。。你正在使用IE,但你已经知道了预加载属性应该是字符串还是对象?如果对象,则不应将其括在引号(围绕{…}的单引号)之间。当我尝试该代码时,IE7和IE8都不会抱怨该代码。我建议可能需要重新检查问题诊断。@mcgrailm-请澄清:IE是否抱怨您发布的代码,或“preload”的字符串值当您将其传递给某个JSON解码器或其他什么东西时?它不一定是有效的JSON;它是一个JavaScript赋值语句。“preload”变量的内容在我看来像JSON,但严格来说JSON确实需要转义正斜杠(我不知道为什么)@Darin Dimitrov:据报道,这不是很好。谢谢你指出这一点。我想知道这是否是罪魁祸首。根据OP的最新评论,这只是某种JavaScript错误。(可能吧。)更改引号可能修复了ie传递stirng的问题,但随后我的actionsript json解码器破坏了var jsonData:Object=json.decode(jsontext);这帮我解决了so+1的问题