1. 程式人生 > >當前較為流行的資料交換格式

當前較為流行的資料交換格式

在日常生活中,人與人之間的交流需要彼此都聽得懂得語言。同理,在計算機的不同程式之間,或者不同的程式語言之間進行交換資料,也需要一種大家都能聽得懂得‘語言’,這就是資料交換格式,它通過文字以特定的形式來進行描述資料。

對於一段資料“JSON-JavaScript Object Notation、XML-eXtensible Markup Language、YAML-Yet Another Markup Language”,我們通常有以下三種描述方法:

一、JSON(JavaScript Object Notation)

{
  "dates": {
    "date": [
      {
        "id": "1",
        "name": "JSON",
        "abb": "JavaScript Object Notation"
      },
      {
        "id": "2",
        "name": "XML",
        "abb": "eXtensible Markup Language"
      },
      {
        "id": "3",
        "name": "YAML",
        "abb": "Yet Another Markup Language"
      }
    ]
  }
}
JSON是一種輕量級的文字資料交換格式,在語法上與建立JavaScript物件的程式碼相同,由key|value(鍵|值)構成。

JSON的格式:

a:資料在名稱|值對中

b.資料由逗號分隔

c.大括號儲存物件

d.中括號儲存陣列

JSON的優點:

a.具有自我描述性,易於閱讀編寫,也易於機器解析與生成

b.使用 Javascript語法來描述資料物件,但是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支援許多不同的程式語言。 目前非常多的動態(PHP,JSP,.NET)程式語言都支援JSON

c.非常適用於伺服器與JavaScript互動

使用JSON:

a.讀取JSON字串

b.用eval()或者parse()處理字串

二、XML(eXtensible Markup Language)

<?xml version="1.0" encoding="UTF-8" ?>
<dates>
    <date>
        <id>1</id>
        <name>JSON</name>
        <abb>JavaScript Object Notation</abb>
    </date>
    <date>
        <id>2</id>
        <name>XML</name>
        <abb>eXtensible Markup Language</abb>
    </date>
    <date>
        <id>3</id>
        <name>YAML</name>
        <abb>Yet Another Markup Language</abb>
    </date>
</dates>

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

XML的格式:

a.宣告:定義XML檔案版本以及字符集

b.根標籤:樹形結構的根節點

c.子元素:相對上一級而言,可以自定義,必須有結束標籤,對大小寫敏感

d.屬性:一個元素可以擁有多個名字不同的屬性

使用XML:

a.讀取XML文件

b.使用XML DOM迴圈遍歷文件

c.讀取值並存儲與變數

三、YAML(Yet Another Markup Language)

dates: 
 date: 
  - 
   id: 1
   name: JSON
   abb: "JavaScript Object Notation"
  - 
   id: 2
   name: XML
   abb: "eXtensible Markup Language"
  - 
   id: 3
   name: YAML
   abb: "Yet Another Markup Language"

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

YAML的格式:

a.結構用縮排表示

b.連續專案用‘-’表示

c.key|value用‘:’分隔

YAML的適用範圍:

a.由於實現簡單,解析成本低,特別適合在指令碼語言中使用

b.YAML比較適合做序列化。因為它是宿主語言資料型別直轉的。

c.YAML做配置檔案也不錯。比如Ruby on Rails的配置就選用的YAML。

YAML的問題:

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

還有一種表達方式是CSV(逗號分隔符),使用表格和分隔符來表示資料的格式,本文就不在多加敘述,有興趣的讀者可以自己去了解一下。本文列出的三者相較而言,JSON與XML使用的更加廣泛一點。並且JSON和XML從實現方法比較而言,不難看出,JSON比XML更快更易使用,個人更加推崇JSON一點。當然,具體情況還得具體分析,合理的使用這些資料交換格式,我們才能夠寫出更加優秀、強大的程式碼!