jQuery插件支持的转换方式:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
注:这种只需要引入jquery插件即可,支持IE7等,推荐使用,简单方便安全。
浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),不支持ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
Javascript支持的转换方式:
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。
JSON官方的转换方式:
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
注:如果需要JSON字符串转对象,又要JSON对象转字符串,建议使用这种方式。
附:
1、jQuery在IE8下的错误“对象不支持此属性或方法”的解决:
jquery2.0版本以上不再支持IE8以下,试下用jquery1.10
官网解释:
jQuery 2.x
jQuery 2.x has the same API as jQuery 1.x, but does not support Internet Explorer 6, 7, or 8. All the notes in the jQuery 1.9 Upgrade Guideapply here as well. Since IE 8 is still relatively common, we recommend using the 1.x version unless you are certain no IE 6/7/8 users are visiting the site. Please read the 2.0 release notes carefully.
2、jQuery判断checkbox是否选中的3种方法:
方法一:
if ($(“#checkbox-id”).get(0).checked) {
// do something
}
方法二:
if($(‘#checkbox-id’).is(‘:checked’)) {
// do something
}
方法三:
if ($(‘#checkbox-id’).attr(‘checked’)) {
// do something
}
3、JQuery设置onclick事件无效的处理方法:
//必须先清除原有的事件
$("#" + attrId).attr("onclick", "");
//再重新绑定新的事件
$("#" + attrId).bind("click", function() {
});