<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
    這個(gè)是基本的轉(zhuǎn)換例子
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> json-to-string </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="emu">
    <META NAME="Keywords" CONTENT="json convert">
    <META NAME="Description" CONTENT="convert a javascript object into a JSON string">
    </HEAD>

    <BODY>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var data={host:{url:"ad.market.com",page:[{name:"all",area:[{name:"rightbanner",tname:"all",tclass:"none",type:"jpg",ad:[{url:"abc.gif",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]},{name:"leftbanner",tname:"all",tclass:"none",type:"jpg",ad:[{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]}]},{name:"index.htm",area:[{name:"rightbanner",tname:"index.htm",tclass:"none",type:"swf",ad:[{url:"abcdef.swf",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]},{name:"leftbanner",tname:"index.htm",tclass:"none",type:"text",ad:[{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""},{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""},{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]}]}]}}

    function obj2str(o){
        
    var r = [];
        
    if(typeof o =="string"return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
        if(typeof o ==
    "undefined") return "undefined";
        if(typeof o == 
    "object"){
            if(o===null) return 
    "null";
            else if(!o.sort){
                for(var i in o)
                    r.push(i+
    ":"+obj2str(o[i]))
                r=
    "{"+r.join()+"}"
            }else{
                for(var i =0;i<o.length;i++)
                    r.push(obj2str(o[i]))
                r=
    "["+r.join()+"]"
            }
            return r;
        }
        return o.toString();
    }

    alert(obj2str(data))
    //-->
    </SCRIPT>
    </BODY>
    </HTML>


    要是想重載系統(tǒng)的native code函數(shù)(比如toString,join),就要根據(jù)不同的瀏覽器上不同的內(nèi)部函數(shù)的具體表現(xiàn)做特殊對待了。比如重載toString函數(shù)在IE里面是默認(rèn)遍歷不到的,而firefox偏偏就可以。下面的例子在IE和firefox下面測試通過:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> json-to-string </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="emu">
    <META NAME="Keywords" CONTENT="json convert">
    <META NAME="Description" CONTENT="convert a javascript object into a JSON string">
    </HEAD>

    <BODY>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var data={host:{url:"ad.market.com",page:[{name:"all",area:[{name:"rightbanner",tname:"all",tclass:"none",type:"jpg",ad:[{url:"abc.gif",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]},{name:"leftbanner",tname:"all",tclass:"none",type:"jpg",ad:[{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]}]},{name:"index.htm",area:[{name:"rightbanner",tname:"index.htm",tclass:"none",type:"swf",ad:[{url:"abcdef.swf",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]},{name:"leftbanner",tname:"index.htm",tclass:"none",type:"text",ad:[{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""},{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""},{url:"",width:"",height:"",menu:"red",tran:"",href:"http://music.qq.com",alt:"aaaaaaaaa",target:"_blank",top:"",bottom:"",left:"",right:""}]}]}]},toString:function(){return obj2str(this)}}

    function obj2str(o){
        
    var r = [];
        
    if(typeof o =="string"return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
        if(typeof o == 
    "object"){
            if(!o.sort){
                for(var i in o)
                    r.push(i+
    ":"+obj2str(o[i]));
                if(!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)){
                    r.push(
    "toString:"+o.toString.toString());
                }
                r=
    "{"+r.join()+"}"
            }else{
                for(var i =0;i<o.length;i++)
                    r.push(obj2str(o[i]))
                r=
    "["+r.join()+"]"
            }
            return r;
        }
        return o.toString();
    }
    alert(obj2str(data))
    //-->
    </SCRIPT>
    </BODY>
    </HTML>
    posted on 2007-01-04 17:30 emu 閱讀(4387) 評論(6)  編輯  收藏

    評論

    # re: 應(yīng)twinsen要求寫了個(gè)轉(zhuǎn)換js對象為json字符串的例子 2007-08-15 20:29 emu
    補(bǔ)充一個(gè)object克隆的簡單方法,不支持function:
    function objClone(o){
    if(typeof o == "object"){
    var r=(o.sort)?[]:{}
    for(var i in o)
    r[i]=objClone(o[i]);
    return r;
    }
    return o;
    }
      回復(fù)  更多評論
      

    # re: 應(yīng)twinsen要求寫了個(gè)轉(zhuǎn)換js對象為json字符串的例子 2009-04-11 15:52 谷歌
    經(jīng)過測試,不支持谷歌  回復(fù)  更多評論
      

    # re: 應(yīng)twinsen要求寫了個(gè)轉(zhuǎn)換js對象為json字符串的例子 2009-04-11 16:01 谷歌
    汗,我能把上面的刪除嘛,你給我刪了個(gè),經(jīng)過仔細(xì)測試,支持谷歌  回復(fù)  更多評論
      

    # re: 應(yīng)twinsen要求寫了個(gè)轉(zhuǎn)換js對象為json字符串的例子 2010-07-15 11:00 lingcarlos
    遞歸用的很熟啊  回復(fù)  更多評論
      

    # re: 應(yīng)twinsen要求寫了個(gè)轉(zhuǎn)換js對象為json字符串的例子[未登錄] 2011-03-15 11:12 benx203
    可不可以修改下,轉(zhuǎn)換后保持對象的key是引號引起來的啊,有的地方要求格式比較嚴(yán)格  回復(fù)  更多評論
      

    # re: 應(yīng)twinsen要求寫了個(gè)轉(zhuǎn)換js對象為json字符串的例子[未登錄] 2011-03-15 11:15 benx203
    我把r.push(i+":"+obj2str(o[i]))修改成r.push("\""+i+"\":"+obj2str(o[i]))可以用了,謝謝!  回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲AV乱码一区二区三区林ゆな | 亚洲啪啪AV无码片| 色拍自拍亚洲综合图区| 亚洲精品伦理熟女国产一区二区 | 四虎影视永久在线精品免费| 久久青草免费91观看| 女人与禽交视频免费看| 久久亚洲国产中v天仙www| 亚洲一区二区三区丝袜| 大地资源在线资源免费观看 | 亚洲AV无码成人精品区狼人影院 | 国产亚洲一区二区在线观看| 色婷五月综激情亚洲综合| 国产成人1024精品免费| 久久笫一福利免费导航| 亚洲一区精品无码| 亚洲精品一二三区| 精品免费视在线观看| 国产乱弄免费视频| 亚洲成AV人片久久| 99久久婷婷免费国产综合精品| 国产精品成人免费视频网站京东| 国产精品亚洲片在线| 亚洲AV日韩AV一区二区三曲| 午夜免费福利视频| 亚洲综合精品网站| 亚洲精品无码久久久久A片苍井空| 日本亚洲欧洲免费天堂午夜看片女人员| 手机看片久久国产免费| 亚洲成aⅴ人片在线观| 精品四虎免费观看国产高清午夜| www国产亚洲精品久久久日本| 中文字幕在线观看亚洲视频| 污污网站免费观看| 亚洲综合色婷婷七月丁香| 亚洲精品久久无码| 69成人免费视频| 亚洲欧洲免费视频| 精品久久久久久无码免费| 国产国产人免费人成免费视频| 亚洲中文字幕在线无码一区二区|