我需要将一些数据以键、值对的形式存储在服务器上,这些数据将被传输到前端,并转换为javascript数组以供进一步处理。我选择了JSON格式并构建了一个小的json。出于某种原因,我使用‘jQuery1.3.2’进行测试,当我转到‘jQuery1.6.2’时,我的代码停止工作,我发现这是因为jquery (1.4+)忽略了无效的JSON。
从JSON 1.4开始,如果JSON文件包含语法错误,请求通常会以静默方式失败。为此,避免频繁手工编辑JSON数据。JSON是一种数据交换格式,其语法规则比JavaScript的对象文字表示法更严格。
那么,对于json来说,有什么好的、低带宽的替代方案呢? Jquery很容易用Jquery进行解析,而Jquery很容易手工编辑,语法也不那么严格。(并不是我打算犯语法错误,但万一有错误,不要让一切都停止工作)
或者,是否有一种方法强制jquery解析无效的JSON?
发布于 2011-08-06 14:32:11
jQuery核心团队的一名成员发布了这个解决方案,以便为JSON获得1.4之前的功能:
$.ajax({url: "/url",
dataType: "json",
success: function(json) {
// do something with json
}
});
// becomes
$.ajax({url: "/url",
dataType: "text",
success: function(text) {
json = eval("(" + text + ")");
// do something with JSON
}
});http://yehudakatz.com/2010/01/15/jquery-1-4-and-malformed-json/
这就是你要找的东西吗?
发布于 2011-08-06 14:38:58
您是否尝试过通过验证器(如JSONLint )传递JSON,然后实现错误避免代码?您可以使用eval()解决方案,因为这是完全有效的。在使用来自第三方位置的数据时要小心,因为数据可能包含恶意命令。
根据要传递的数据的范围,您可能能够以分隔的方式输出数据,只需使用一个简单的$.ajax()调用来通过一个循环分隔分隔的数据并相应地处理它。
https://stackoverflow.com/questions/6967449
复制相似问题