XML 是一種用於服務導向架構 (SOA) 和資料轉送的常見傳輸。當然,目前許多服務以 SOAP 格式存在。不過,何時將其用於資料轉送在 Ajax 社區中存在分岐。
[ XML ]
使用XML作為傳輸格式的優勢:
1. 格式統一, 符合標準
2. 容易與其他系統進行遠程互動, 資料共用比較方便
3.調用將 XML 用作傳輸的現有服務。
4.使用 XSLT 可以動態轉換 XML。這是企業服務匯流排 (ESB) 方案中的理想功能。
缺點:
1. XML檔案格式檔案龐大, 格式複雜, 傳輸佔用頻寬
2. 伺服器端和用戶端都需要花費大量代碼來解析XML, 不論伺服器端和用戶端代碼變的異常複雜和不容易維護
3. 用戶端不同瀏覽器之間解析XML的方式不一致, 需要重複編寫很多代碼
4. 伺服器端和用戶端解析XML花費資源和時間
[ JSON ]
那麼除了XML格式, 還有沒有其他格式, 有一種叫做JSON (JavaScript Object Notation) 的輕量級資料交換格式能夠替代XML的工作.
優點:
1. 資料格式比較簡單, 易於讀寫, 格式都是壓縮的, 佔用頻寬小,瀏覽器解析快
2. 易於解析這種語言, 用戶端JavaScript可以簡單的通過eval()進行JSON資料的讀取
3. 構造友好,支援多種語言, 包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等語言伺服器端語言, 便於伺服器端的解析
4. 在PHP世界, 已經有PHP-JSON和JSON-PHP出現了, 便於PHP序列化後的程式直接調用. PHP伺服器端的對象、數組等能夠直接生JSON格式, 便於用戶端的訪問提取.
另外PHP的PEAR類已經提出了支援 (http://pear.php.net/pepr/pepr-proposal-show.php?id=198)
5. 因為JSON格式能夠直接為伺服器端代碼使用, 大大簡化了伺服器端和用戶端的代碼開發量, 但是完成的任務不變, 且易於維護
6.相當穩定。JSON 的附加內容將成為超集。
缺點:
1. 沒有XML格式這麼推廣的深入人心和使用廣泛, 沒有XML那麼通用性
2. JSON格式目前在Web Service中推廣還屬於初級階段
個人總結: XML 或是JSON 可以視情況使用, 一個項目在特定情況下可以同時使用這兩種格式.
不過本並不建議如此來做, 因為這種方式可能會給整個項目的代碼管理帶來麻煩.還需謹慎!