jquery 对json字符串转换

原文地址:http://hi.baidu.com/124232323/blog/item/07f9fd954b6fe540d0135e66.html

 

//扩展jQuery对json字符串的转换 jQuery.extend({    /** * @see 将json字符串转换为对象 * @param json字符串 * @return 返回object,array,string等对象 */    evalJSON: function(strJson) {      return eval("(" + strJson + ")");    } }); jQuery.extend({    /** * @see 将javascript数据类型转换为json字符串 * @param 待转换对象,支持object,array,string,function,number,boolean,regexp * @return 返回json字符串 */    toJSON: function(object) {      var  type  =  typeof  object;      if ('object' == type) {        if ( Array  == object.constructor)  type  =  'array' ;        else if ( RegExp  == object.constructor)  type  =  'regexp' ;        else  type  =  'object' ;      }      switch (type) {      case 'undefined':      case 'unknown':        return;        break;      case 'function':      case 'boolean':      case 'regexp':        return object.toString();        break;      case 'number':        return isFinite(object) ? object.toString() : 'null';        break;      case 'string':        return '"' + object.replace(/(//|/")/g, "//$1").replace(//n|/r|/t/g, function() {          var  a  =  arguments [0];          return ( a  == '/n') ? '//n': ( a  == '/r') ? '//r': ( a  == '/t') ? '//t': ""        }) + '"';        break;      case 'object':        if ( object  === null) return 'null';        var  results  = [];        for (var property in object) {          var  value  =  jQuery .toJSON(object[property]);          if (value !== undefined) results.push(jQuery.toJSON(property) + ':' + value);        }        return '{' + results.join(',') + '}';        break;      case 'array':        var  results  = [];        for (var  i  =  0 ; i  <   object.length ; i++) {          var  value  =  jQuery .toJSON(object[i]);          if (value !== undefined) results.push(value);        }        return '[' + results.join(',') + ']';        break;      }    } }); 示例: var  obj  = {    name: "sean",    friend: ["fans", "bruce", "wawa"],    action: function() {      alert("gogogog")    },    boy: true,    age: 26,    reg: //b([a-z]+) /1/b/gi,    child: {      name: "none",      age: -1    } }; var  json  = $.toJSON(obj); var  objx  = $.evalJSON(json);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值