jquery 字符串和json 转换

jQuery.extend(
         {

          //转换为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;
              }
          }

     //转换为json 对象

             evalJSON : function (strJson)
              {
               return eval( "(" + strJson + ")");
              }


         });

 

posted on 2010-03-19 15:08  陈哲  阅读(9196)  评论(0)    收藏  举报

导航