這個處理過程包括將 IRI 轉換為一個等價的 URL。在核心 Atom 詞匯表中,icon、logo、uri、link 和 content 元素可以包含能被解除引用的 IRI,下面就對JSON 轉換工具進行學習探討。
初看起來,將 Atom 文檔轉換為 JSON 似乎非常簡單。畢竟,Atom 只是一些 XML,並且有大量 XML 和 JSON 轉換工具可用。然而,Atom 格式不僅僅是 XML 元素和屬性的集合。
許多復雜的細節使得很難正確處理 Atom。本文將描述這些問題,並演示了一種由 apache Abdera 項目實現的機制,該機制可以將 Atom 文檔轉換成 JSON 並生成易於理解、易於使用的完整內容。
在將一個 Atom 文檔轉換為JSON 轉換工具 時,將獲得大量富含信息的內容,並將其序列化為一種非常簡單的形式。在難於解析和正確處理 XML 的環境中,您可以更加輕松地使用這種更簡單的內容形式。
這個過程面臨的主要挑戰是,確保重要數據和上下文不會在轉換過程中丟失。以下章節將討論轉換 Atom 文檔時的各個關鍵問題。假設讀者至少對 Atom 和 JSON 有一個基本的了解。如果對它們都不熟悉,請在繼續閱讀之前查看一下本文末尾列出的 參考資料。
Atom 文檔包含一個人類和計算機都能識別的混合信息集合。人類可讀內容的恰當呈現,如條目標題、分類標簽、鏈接標題、權限描述等等,依賴於一種在轉換為 JSON 過程中必須正確保存的語言上下文。
xml:lang 是一種指定 Atom 文檔所使用語言的機制。此屬性可以出現在 Atom 文檔中的任何位置,而且既可以被子元素繼承,也可以被覆蓋。XML:lang 屬性的值是一個由 RFC 4646 定義的 “語言標記” ,名為 “Tags for Identifying Languag”。
這些標記提供關於文本編寫所用語言、使用的腳本或編寫系統的信息,以及地區性語言變化等。這類信息將影響用戶代理呈現文本的方式。清單 1 所示的示例 Atom 提要演示了 XML:lang 在 Atom 文檔中的用法,但是該示例沒有實際意義。本系列已經用大量時間討論了數據格式,這主要是因為幾乎所有異步應用程序最終都要處理數據。如果掌握了發送和接收所有類型的數據的各種工具和技術。
並按照最適合每種數據類型的方式使用它們,那麼就能夠更精通 AJax。在掌握 XML 和純文本的基礎上,再掌握JSON 轉換工具,這樣就能夠在 JavaScript 中處理更復雜的數據結構。
本系列中的下一篇文章將討論發送數據以外的問題,深入介紹服務器端程序如何接收和處理 JSON 轉換工具的數據。還要討論服務器端程序如何跨腳本和服務器端組件以 JSON 格式發送回數據,這樣就可以將 XML、純文本和 JSON 請求和響應混合在一起。這可以提供很大的靈活性,可以按照幾乎任何組合結合使用所有這些工具。