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

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

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


    在新項(xiàng)目中,除了一些框架所依賴的配置文件使用XML外,基本沒(méi)有使用XML。JSON基本替代了原來(lái)XML在程序內(nèi)的位置。在以前,我們不愿意使用一種私有的格式,于是選擇了XML。選擇XML的理由,可能是大家都用它,所以我們也用它。

    XML 是一種很好的技術(shù),但是目前的情況來(lái)看,XML被濫用了,SOAP是XML被濫用的一種典型,程序內(nèi)部的表示使用XML也是濫用的一種典型。看到的一種情況,一個(gè)對(duì)象toString使用XML格式輸出,導(dǎo)致日志文件十分羅嗦,調(diào)試時(shí),在watch窗口中看到一大堆<tag>。

    在新項(xiàng)目中,認(rèn)真考慮這種情況,找到了另外一種選擇,那就是JSON。選擇JSON的理由很充分:
    1、JSON的解釋性能要比XML要好,要簡(jiǎn)潔緊湊。
    2、可讀性要比XML好。JSON本身就是JavaScript的語(yǔ)法,和程序員的思維,而非文檔編寫(xiě)的思維。
    3、JavaScript原生支持,客戶端瀏覽器不需要為此使用額外的解釋器,在web環(huán)境中使用特別合適。

    在java中使用json,目前需要注意一些情況:
    1、目前開(kāi)源的JSON-LIB代碼質(zhì)量不好,最好是在此基礎(chǔ)之上修改一個(gè)版本,或者自己重新開(kāi)發(fā)一個(gè)版本。
    2、使用new Date的方式替代JSON-LIB中的{year:2007, month:12, ....}之類的方式
    3、JSON-LIB中,object的propertyName在輸出的時(shí)候,都帶上"",例如{"name": "溫少"}, 其中name是的雙引號(hào)是不必要的,在輸出時(shí)應(yīng)該判斷,不需要的就是就不加上"",減少網(wǎng)絡(luò)流量。
    4、JSON的解釋器中,應(yīng)該支持簡(jiǎn)單的表達(dá)式,例如new Date()、new Date(2939234723)之類的,這使得JSON的表達(dá)能力會(huì)更強(qiáng)一些。
    5、JSON應(yīng)該分兩種,一種只支持簡(jiǎn)單格式,類似開(kāi)源的JSON-LIB,一種是通過(guò)JavaScript解釋器來(lái)實(shí)現(xiàn)的。后者在程序中傳輸數(shù)據(jù)時(shí),能夠得到更強(qiáng)大的表達(dá)能力,但是也會(huì)導(dǎo)致安全問(wèn)題,需要慎重使用。
    posted on 2008-03-08 14:24 溫少的日志 閱讀(3687) 評(píng)論(12)  編輯  收藏
    Comments
    • # re: 使用JSON替代XML
      cnodin
      Posted @ 2008-03-08 17:42
      json的確在某些方面比xml使用起來(lái)方便。但是對(duì)于xml,用xpath選擇層次比較深的節(jié)點(diǎn),是不是比用json又更好呢?  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      HiMagic!
      Posted @ 2008-03-08 17:56
      json是不錯(cuò),不過(guò)我的建議是在server -> client單向使用,不用json lib,在輸出時(shí)寫(xiě)個(gè)幾十行的程序就可以把Java object輸出成json string,畢竟jscript是json的舞臺(tái)。  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      交口稱贊
      Posted @ 2008-03-08 18:29
      現(xiàn)在也在用json
      和jquery完美搭檔  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      Strive
      Posted @ 2008-03-09 08:25
      我弄了一個(gè) RpcSide 但是不知道如何控制權(quán)限, 可以前臺(tái)調(diào)后臺(tái)類,整合了Spring 按規(guī)范方式書(shū)寫(xiě)方法就能調(diào)用, 不知道 ArrayList 這些是如何解析回來(lái), 普通的 String Number Boolean Date都能解析,而且不慢, 請(qǐng)樓主能給一個(gè)好的解決方案來(lái)處理 js Array 到 Java ArrayList 互相轉(zhuǎn)換,傳輸,還有 AJAX安全處理的機(jī)制?>  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      久城
      Posted @ 2008-03-09 10:49
      請(qǐng)教一下,在server -> client時(shí),大家用什么方法把Java Object輸出成json String?  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      溫少的日志
      Posted @ 2008-03-09 12:59
      @Strive
      既然你做的RPC,就應(yīng)該使用方法的簽名自動(dòng)轉(zhuǎn)換JSON數(shù)據(jù)到目標(biāo)類型。[]格式的JSONArray轉(zhuǎn)到目標(biāo)的ArrayList是很容易的事情啊  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      溫少的日志
      Posted @ 2008-03-09 13:00
      @久城
      如果你使用json-lib,可以讓對(duì)象實(shí)現(xiàn)JSONString接口,另外json-lib有一些配置參數(shù),但是json-lib做的不好。  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      fkpwolf
      Posted @ 2008-03-09 21:28
      這也只是在javascript的前提下  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      Strive
      Posted @ 2008-03-10 08:03
      我就發(fā)現(xiàn) 像 Map 這些類型,實(shí)在是不好轉(zhuǎn)換, 如果你試用過(guò) Dorado 它的處理方式也差不多, 只是按規(guī)定寫(xiě)方法。 也不知它們的安全性如何保證的。  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      itVincent
      Posted @ 2008-03-10 09:39
      我也在用json-lib的時(shí)候,對(duì)date類型有些困惑  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      一農(nóng)
      Posted @ 2008-03-11 23:07
      對(duì)于web-rpc我用的就是json-rpc(現(xiàn)在叫jabsorb),當(dāng)然我們又做了修改,以便和spring結(jié)合,另外去掉了初始化的過(guò)程。
      DWR的協(xié)議,還有國(guó)內(nèi)的一些哥們寫(xiě)的RPC的協(xié)議不太喜歡,DWR的人說(shuō)他們會(huì)支持多種協(xié)議,并且說(shuō)他們的功能比json-rpc強(qiáng),反正我們用不著。  回復(fù)  更多評(píng)論   
    • # re: 使用JSON替代XML
      長(zhǎng)春日租房
      Posted @ 2011-11-15 13:35
      很好的方法啊,要記住  回復(fù)  更多評(píng)論   

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


    網(wǎng)站導(dǎo)航:
     
     
    主站蜘蛛池模板: 中文字幕亚洲综合精品一区| 亚洲五月午夜免费在线视频| 成全视频在线观看免费高清动漫视频下载 | 日韩高清在线免费观看| 亚洲精品网站在线观看你懂的| 在线观看av永久免费| 日韩在线观看免费完整版视频| 亚洲AV日韩AV永久无码绿巨人| 性一交一乱一视频免费看| 国产精品视频全国免费观看| 亚洲熟妇无码久久精品| 免费a级黄色毛片| 狠狠热精品免费观看| 免费一看一级毛片全播放| 99精品视频在线观看免费专区| 亚洲国产成人综合| 亚洲精品国产成人影院| 国产一级a毛一级a看免费人娇| 久久精品亚洲AV久久久无码| 欧美好看的免费电影在线观看| a免费毛片在线播放| 国产精品高清视亚洲一区二区| 日韩免费视频播播| 在线观看的免费网站无遮挡| 色网站在线免费观看| 亚洲六月丁香六月婷婷色伊人 | 免费少妇a级毛片人成网| 6080午夜一级毛片免费看| 97se亚洲国产综合自在线 | 亚洲无圣光一区二区| 成年女人色毛片免费看| 青青青国产手机频在线免费观看 | 亚洲精品电影天堂网| jlzzjlzz亚洲乱熟在线播放| 100000免费啪啪18免进| 婷婷亚洲综合一区二区| 亚洲精品V欧洲精品V日韩精品 | 久久精品无码专区免费青青| 日韩久久无码免费毛片软件| 亚洲av日韩av激情亚洲| 亚洲午夜久久久久久久久久|