數(shù)據(jù)交換格式就像兩個(gè)人在聊天, 采用彼此都能聽得懂的語言其中的語言就相當(dāng)于數(shù)據(jù)交換格式,它通過文本以特定的形式來進(jìn)行描述數(shù)據(jù)粥航。
目前較為流行的數(shù)據(jù)交換格式有 XML、JSON、YAML、純文本格式
純文本格式——是一種簡(jiǎn)單的無格式的數(shù)據(jù)交換格式, 各個(gè)部分之間用逗號(hào)分隔 數(shù)量小的時(shí)候可以使用 但隨著數(shù)據(jù)增加 我們可能會(huì)搞亂它的順序,如各個(gè)數(shù)據(jù)部分能有描述信息就好了捏鱼,而XML和JSON可以帶信息描述,他們叫自述式的結(jié)構(gòu)化文檔
JSON 格式—— a:數(shù)據(jù)在名稱|值對(duì)中
b.數(shù)據(jù)由逗號(hào)分隔
c.大括號(hào)保存對(duì)象
d.中括號(hào)保存數(shù)組
優(yōu)點(diǎn):1.具有自我描述性,易于閱讀編寫酪耕,也易于機(jī)器解析與生成
2.使用 Javascript語法來描述數(shù)據(jù)對(duì)象导梆,但是 JSON 仍然獨(dú)立于語言和平臺(tái)。JSON 解析器和 JSON 庫支持許多不同的編程語言迂烁。 目前非常多的動(dòng)態(tài)(PHP看尼,JSP,.NET)編程語言都支持JSON
3.非常適用于服務(wù)器與JavaScript交互
4.輕量級(jí)數(shù)據(jù)交換格式 占帶寬小
用eval()或者parse()處理字符串
XML格式————
a.聲明:定義XML文件版本以及字符集
b.根標(biāo)簽:樹形結(jié)構(gòu)的根節(jié)點(diǎn)
c.子元素:相對(duì)上一級(jí)而言盟步,可以自定義藏斩,必須有結(jié)束標(biāo)簽,對(duì)大小寫敏感
d.屬性:一個(gè)元素可以擁有多個(gè)名字不同的屬性
e.命名空間
f:限定名
解析XML時(shí)却盘,目前有兩種流行模式 SAX和DOM
SAX是一種基于事件驅(qū)動(dòng)的解析方式 解析XML 程序從上到下讀取XML 解析的速度快
DOM是將XML文檔作為一棵樹結(jié)構(gòu)解析 如果文檔大 解析速度也會(huì)變慢
優(yōu)點(diǎn):1.格式統(tǒng)一 符合標(biāo)準(zhǔn)
2.容易進(jìn)行系統(tǒng)間數(shù)據(jù)共享
缺點(diǎn):1.文件格式大
2.用帶寬大
3.復(fù)用性差
YAML是一種直觀的能夠被電腦識(shí)別的數(shù)據(jù)序列化格式
YAML格式——a.結(jié)構(gòu)用縮進(jìn)表示
b.連續(xù)項(xiàng)目用‘-’表示
c.key|value用‘:’分隔
YAML的適用范圍:
a.由于實(shí)現(xiàn)簡(jiǎn)單狰域,解析成本低,特別適合在腳本語言中使用
b.YAML比較適合做序列化黄橘。因?yàn)樗撬拗髡Z言數(shù)據(jù)類型直轉(zhuǎn)的兆览。
c.YAML做配置文件也不錯(cuò)。比如Ruby on Rails的配置就選用的YAML塞关。
YAML的問題:
由于兼容性問題抬探,不同語言間的數(shù)據(jù)流轉(zhuǎn),建議不要用YAML