1. 程式人生 > >常用資料互動格式

常用資料互動格式

在平時工作中,我們經常會遇到資料互動,然而很少去研究它,今天就來總結一下。人與人之間的交流需要彼此都聽得懂得語言。同理,在計算機的不同程式之間,或者不同的程式語言之間進行交換資料,也需要一種大家都能聽得懂得‘語言’,這就是資料交換格式,經常接觸的就是json,除了json還有xml、yaml等等。

一、JSON(JavaScript Object Notation)

  1. {
  2. “dates”: {
  3. “date”: [
  4. {
  5. “id”: “1”,
  6. “name”: “JSON”,
  7. “ccc”: “JavaScript Object Notation”
  8. },
  9. {
  10. “id”: “2”,
  11. “name”: “XML”,
  12. “ccc”: “eXtensible Markup Language”
  13. },
  14. {
  15. “id”: “3”,
  16. “name”: “YAML”,
  17. “ccc”: “Yet Another Markup Language”
  18. }
  19. ]
  20. }
  21. }

JSON是一種輕量級的文字資料交換格式,在語法上與建立JavaScript物件的程式碼相同,由key|value(鍵|值)構成。

JSON的格式:

  1. 資料在名稱|值對中
  2. 資料由逗號分隔
  3. 大括號儲存物件
  4. 中括號儲存陣列

JSON的優點:

  1. 具有自我描述性,易於閱讀編寫,也易於機器解析與生成
  2. 使用 Javascript語法來描述資料物件,但是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支援許多不同的程式語言。 目前非常多的動態(PHP,JSP,.NET)程式語言都支援JSON
  3. 非常適用於伺服器與JavaScript互動

使用JSON:

  1. 讀取JSON字串
  2. b.用eval()或者parse()處理字串

二、XML(eXtensible Markup Language)

  1. <?xml version="1.0"
    encoding="UTF-8" ?>
  2. <dates>
  3. <date>
  4. <id>1</id>
  5. <name>JSON</name>
  6. <ccc>JavaScript Object Notation</ccc>
  7. </date>
  8. <date>
  9. <id>2</id>
  10. <name>XML</name>
  11. <ccc>eXtensible Markup Language</ccc>
  12. </date>
  13. <date>
  14. <id>3</id>
  15. <name>YAML</name>
  16. <ccc>Yet Another Markup Language</ccc>
  17. </date>
  18. </dates>

 可擴充套件標記語言,標準通用標記語言的子集,是一種用於標記電子檔案使其具有結構性的標記語言。

XML的格式:

  1. 宣告:定義XML檔案版本以及字符集
  2. 根標籤:樹形結構的根節點
  3. 子元素:相對上一級而言,可以自定義,必須有結束標籤,對大小寫敏感
  4. 屬性:一個元素可以擁有多個名字不同的屬性

使用XML:

  1. 讀取XML文件
  2. 使用XML DOM迴圈遍歷文件
  3. 讀取值並存儲與變數

三、YAML(Yet Another Markup Language)

  1. dates:
  2. date:
  3. -
  4. id: 1
  5. name: JSON
  6. ccc: "JavaScript Object Notation"
  7. -
  8. id: 2
  9. name: XML
  10. ccc: "eXtensible Markup Language"
  11. -
  12. id: 3
  13. name: YAML
  14. ccc: "Yet Another Markup Language"

YAML是一種直觀的能夠被電腦識別的的資料序列化格式

YAML的格式:

  1. 結構用縮排表示
  2. 連續專案用‘-’表示
  3. key|value用‘:’分隔

YAML的適用範圍:

  1. 由於實現簡單,解析成本低,特別適合在指令碼語言中使用
  2. YAML比較適合做序列化。因為它是宿主語言資料型別直轉的。
  3. YAML做配置檔案也不錯。比如Ruby on Rails的配置就選用的YAML。

YAML的問題:

由於相容性問題,不同語言間的資料流轉,建議不要用YAML

還有一種表達方式是CSV(逗號分隔符),使用表格和分隔符來表示資料的格式,本文就不在多加敘述,有興趣的讀者可以自己去了解一下。本文列出的三者相較而言,JSON與XML使用的更加廣泛一點。並且JSON和XML從實現方法比較而言,不難看出,JSON比XML更快更易使用。