/**
创新互联公司于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元兴业做网站,已为上家服务,为兴业各地企业和个人服务,联系电话:028-86922220
* 将json字符串转换为对象的方法。
*
* @public
* @param json字符串
* @return 返回object,array,string等对象
**/
jQuery.extend({
/** * @see 将json字符串转换为对象 * @param json字符串 * @return 返回object,array,string等对象 */
evalJSON: function(strJson) {
return eval("(" + strJson + ")");
}
});
eval函数语法
eval(codes);
codes -- 字符串形式的表达式或语句
eval函数返回值
如果没有参数,返回undefined
如果有返回值将返回此值,否则返回undefined
如果为表达式,返回表达式的值
如果为语句返回语句的值
如果为多条语句或表达式返回最后一条语句的值
在使用eval转化字符串为json时,必须要注意,字符串必须可以转化成json对象,否则不能转换,举例如下
var str = " { ' name ' : ' value '}";
var obj = eval('('+str+')');
通过eval方式进行转换。
举例:
var str = '{a:"1"}';//定义了一个string格式
var json = eval('('+str + ')');//通过eval转换成json对象
补充:
eval加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语 句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始 和结束标记,那么{}将会被认为是执行了一句空语句。
JSON.stringify(要转换的object对象)。此方法返回的就是一个类似于 {“name”:"张三","age":18} 这样的字符串
用jQuery.parseJSON(str)来转
接收一个JSON字符串,返回解析后的对象。
一般会这么写
$.parseJSON('"{test:1}"')
或者也可以
jQuery.parseJSON('"{test:1}"')
结果都是一样的,转换出来的就是json对象
当然也可以选择使用原生方法JSON.parse(str)同样可以接收json字符串,转成json对象
////扩展添加序列化函数,表单序列化json对象
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
//调用:$('form表单').serializeObject();