六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 45|回复: 0

扩展jQuery对json字符串的转换

[复制链接]

升级  88%

10

主题

10

主题

10

主题

童生

Rank: 1

积分
44
 楼主| 发表于 2013-1-29 09:39:12 | 显示全部楼层 |阅读模式
//扩展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;      }    }  });
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表