什麼是 JSON ?
- JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation)
- JSON 是輕量級的文本數據交換格式
- JSON 獨立於語言 *
- JSON 具有自我描述性,更易理解
JSON建構有兩種結構:
json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組2種結構,通過這兩種結構可以表示各種複雜的結構
1、對象:對象在js中表示爲“{}”擴起來的內容,數據結構爲 {key:value,key:value,...}的鍵值對的結構,在面向對象的語言中,key爲對象的屬性,value爲對應的屬性值,所以很容易理解,取值方法爲 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。
2、數組:數組在js中是中括號“[]”擴起來的內容,數據結構爲 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。
{ "employees": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] }
JSON 語法規則
- 數據在名稱/值對中
- 數據由逗號分隔
- 花括號保存對象
- 方括號保存數組
JSON 值可以是:
- 數字(整數或浮點數)
- 字符串(在雙引號中)
- 邏輯值(true 或 false)
- 數組(在方括號中)
- 對象(在花括號中)
- null
什麼是 XML?
- XML 指可擴展標記語言(EXtensible Markup Language)
- XML 是一種標記語言,很類似 HTML
- XML 的設計宗旨是傳輸數據,而非顯示數據
- XML 標籤沒有被預定義。您需要自行定義標籤。
- XML 被設計爲具有自我描述性。
- XML 是 W3C 的推薦標準
XML的解析方式有兩種:
一是通過文檔模型解析,也就是通過父標籤索引出一組標記。例如:xmlData.getElementsByTagName("tagName"),但是這樣是要在預先知道文檔結構的情況下使用,無法進行通用的封裝。
另外一種方法是遍歷節點(document 以及 childNodes)。這個可以通過遞歸來實現,不過解析出來的數據仍舊是形式各異,往往也不能滿足預先的要求。
<note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
XML特性:
1.XML 數據以純文本格式進行存儲,因此提供了一種獨立於軟件和硬件的數據存儲方法。
2.XML 文檔必須包含根元素。該元素是所有其他元素的父元素。
3.在 XML 中,省略關閉標籤是非法的。所有元素都必須有關閉標籤。
4.XML 標籤對大小寫敏感。
5.在 XML 中,所有元素都必須彼此正確地嵌套。
6.在 XML 中,XML 的屬性值須加引號,不過單引號和雙引號均可使用。
註釋:如果屬性值本身包含雙引號,那麼有必要使用單引號包圍它。
在
HTML 中,屬性用起來很便利,但是在 XML 中,您應該儘量避免使用屬性。如果信息感覺起來很像數據,那麼請使用子元素吧。
元數據(有關數據的數據)應當存儲爲屬性,而數據本身應當存儲爲元素。
附:下面的三個 XML 文檔包含完全相同的信息:
第一個例子中使用了 date 屬性:
<note date="08/08/2008"
>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第二個例子中使用了 date 元素:
<note>
<date>08/08/2008</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第三個例子中使用了擴展的 date 元素(這是我的最愛):
<note>
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
7.在 XML 中,一些字符擁有特殊的意義。
附:在 XML 中,有 5 個預定義的實體引用:
< | < | 小於 |
> | > | 大於 |
& | & | 和號 |
' | ' | 單引號 |
" | " | 引號 |
8.
9.HTML 會把多個連續的空格字符裁減(合併)爲一個,在
XML 中,文檔中的空格不會被刪節。
在 XML 中編寫註釋的語法與 HTML 的語法很相似:
<!-- This is a comment -->
XML實例
上圖表示下面的 XML 中的一本書:
<bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
例子中的根元素是 <bookstore>。文檔中的所有 <book> 元素都被包含在 <bookstore> 中。
<book> 元素有 4 個子元素:<title>、< author>、<year>、<price>