object转json 解决js中new Object() 转json的方法

解决js中new Object() 转json的方法

$(function(){
	var   obj=new   Object(); 
	obj.Name= '张三呀'; 
	obj.Sex="中性"; 
	console.log(JSON.serialize(obj))
})




(function(){
if(typeof   StringBuilder== 'undefined'){ 
        StringBuilder=function(initialText) 
        { 
          var   _parts   =   new   Array();                 
                  if   ((typeof(initialText)   ==   'string') 
                    &&(initialText.length   !=   0)) 
                    _parts.push(initialText); 
              
                this.append   =   function(text)   { 
                if   ((text   ==   null)   ||   (typeof(text)   ==   'undefined'))   { 
                                return; 
                        } 
                        if   ((typeof(text)   ==   'string')   &&   (text.length   ==   0))   { 
                                return; 
                        }                         
                        _parts.push(text); 
                } 
                this.appendLine   =   function(text)   { 
                        this.append(text); 
                        _parts.push( '/r/n'); 
                } 
                this.clear   =   function()   { 
                        _parts.clear(); 
                } 
                  this.isEmpty   =   function()   { 
                        return   (_parts.length   ==   0); 
                  } 
                this.toString   =   function(delimiter)   { 
                        return   _parts.join(delimiter   ||   ''); 
                  } 
        } 
}
JSON   =   new   function()   { 
        function   serializeWithBuilder(object,   stringBuilder)   { 
                var   i; 
                
                switch   (typeof   object)   { 
                case   'object': 
                        if   (object)   { 
                                        if   (object.join)   {//if   is   array,   you   can   using   another   method   implement 
                                        stringBuilder.append( '['); 
                                        for   (i   =   0;   i   <   object.length;   ++i)   { 
                                                if   (i   >   0)   { 
                                                        stringBuilder.append( ','); 
                                                } 
                                                stringBuilder.append(serializeWithBuilder(object[i],   stringBuilder)); 
                                        } 
                                        stringBuilder.append( ']'); 
                                  }   
                                        else   { 
                                                if   (typeof   object.serialize   ==   'function')   { 
                                                stringBuilder.append(object.serialize()); 
                                                break; 
                                        }                                 
                                        stringBuilder.append( '{'); 
                                        var   needComma   =   false; 
                                        for   (var   name   in   object)   { 
                                              if   (name.startsWith( '$'))   { 
                                                        continue; 
                                                } 
                                                var   value   =   object[name]; 
                                                if   (typeof   value   !=   'undefined'   &&   typeof   value   !=   'function')   { 
                                                        if   (needComma)   
      stringBuilder.append( ',');                                                         
                                                        else   
      needComma   =   true; 
                                                                                  
                                                        stringBuilder.append(serializeWithBuilder(name,   stringBuilder)); 
                                                        stringBuilder.append( ':'); 
                                                        stringBuilder.append(serializeWithBuilder(value,   stringBuilder)); 
                                                } 
                                        } 
                                        stringBuilder.append( '}'); 
                                } 
                        } 
                        else   { 
                                stringBuilder.append( 'null'); 
                        } 
                        break; 
                        
                case   'number': 
                        if   (isFinite(object))   { 
                                stringBuilder.append(String(object)); 
                        } 
                        else   { 
                                stringBuilder.append( 'null'); 
                        } 
                        break; 
                        
                case   'string': 
                        stringBuilder.append( '"'); 
                        var   length   =   object.length; 
                        for   (i   =   0;   i   <   length;   ++i)   { 
                                var   curChar   =   object.charAt(i); 
                                if   (curChar   >=   '')   { 
                                      if   (curChar   ==   '//'   ||   curChar   ==   '"')   { 
                                            stringBuilder.append( '//'); 
                                        } 
                                        stringBuilder.append(curChar); 
                                } 
                                else   { 
                                      switch   (curChar)   { 
                                                case   '/b': 
                                                        stringBuilder.append( '//b'); 
                                                        break; 
                                                case   '/f': 
                                                        stringBuilder.append( '//f'); 
                                                        break; 
                                                case   '/n': 
                                                        stringBuilder.append( '//n'); 
                                                        break; 
                                                case   '/r': 
                                                        stringBuilder.append( '//r'); 
                                                        break; 
                                                case   '/t': 
                                                        stringBuilder.append( '//t'); 
                                                        break; 
                                                default: 
                                                        stringBuilder.append( '//u00'); 
                                                        stringBuilder.append(curChar.charCodeAt().toString(16)); 
                                        } 
                                } 
                        } 
                        stringBuilder.append( ' "'); 
                        break; 
  
                case   'boolean': 
                        stringBuilder.append(object.toString()); 
                        break; 
  
                default: 
                        stringBuilder.append( 'null'); 
                        break; 
                } 
        } 
        this.serialize   =   function(object)   {   
                var   stringBuilder   =   new   StringBuilder(); 
                serializeWithBuilder(object,   stringBuilder); 
                return   stringBuilder.toString(); 
        } 
        this.deserialize   =   function(data)   { 
                return   eval( '('   +   data   +   ')'); 
        } 
}
})()





来自网络:http://blog.csdn.net/lee576/article/details/2255091


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值