js object转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;
      }
   }
});



你可能感兴趣的:(js,object转json)