對json,xml,cvs的一些整理d

①json(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括CC++C#JavaJavaScriptPerlPython等)。這些特性使JSON成爲理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網絡傳輸速率)。全稱是JavaScript Object Notation。它是基於JavaScript編程語言ECMA-262 3rd Edition-December 1999標準的一種輕量級的數據交換格式,主要用於跟服務器進行交換數據。跟XML相類似,它獨立語言,在跨平臺數據傳輸上有很大的優勢。

json的結構JSON建構有兩種結構:1. “名稱/值”對的集合。不同的語言中,它被理解爲對象,記錄,結構,字典,哈希表,有鍵列表,或者關聯數組 。2.值的有序列表。在大部分語言中,它被理解爲數組。

json的具體形式:1.對象是一個無序的“‘名稱/值’對”集合。2.數組是值的有序集合。3、值可以是雙引號括起來的字符串、數值、true、false、 null、對象或者數組。這些結構可以嵌套。4、字符串是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符即一個單獨的字符串。 字符串與C或者Java的字符串非常相似。5、數值也與C或者Java的數值非常相似。除去未曾使用的八進制十六進制格式。除去一些編碼細節。

JSON和XML的比較

可讀性

JSON和XML的可讀性可謂不相上下,一邊是簡易的語法,一邊是規範的標籤形式,很難分出勝負。

可擴展性

XML天生有很好的擴展性,JSON當然也有,沒有什麼是XML不能擴展,而JSON卻不能擴展的。不過JSON在Javascript主場作戰,可以存儲Javascript複合對象,有着xml不可比擬的優勢。

編碼難度

XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有提供的工具。無工具的情況下,相信熟練的開發人員一樣能很快的寫出想要的xml文檔和JSON字符串,不過,xml文檔要多很多結構上的字符。

解碼難度

XML的解析方式有兩種:

一是通過文檔模型解析,也就是通過父標籤索引出一組標記。例如:xmlData.getElementsByTagName("tagName"),但是這樣是要在預先知道文檔結構的情況下使用,無法進行通用的封裝。

另外一種方法是遍歷節點(document 以及 childNodes)。這個可以通過遞歸來實現,不過解析出來的數據仍舊是形式各異,往往也不能滿足預先的要求。

凡是這樣可擴展的結構數據解析起來一定都很困難。

JSON也同樣如此。如果預先知道JSON結構的情況下,使用JSON進行數據傳遞簡直是太美妙了,可以寫出很實用美觀可讀性強的代碼。如果你是純粹的前臺開發人員,一定會非常喜歡JSON。但是如果你是一個應用開發人員,就不是那麼喜歡了,畢竟xml纔是真正的結構化標記語言,用於進行數據傳遞。

而如果不知道JSON的結構而去解析JSON的話,那簡直是噩夢。費時費力不說,代碼也會變得冗餘拖沓,得到的結果也不盡人意。但是這樣也不影響衆多前臺開發人員選擇JSON。因爲json.js中的toJSONString()就可以看到JSON的字符串結構。當然不是使用這個字符串,這樣仍舊是噩夢。常用JSON的人看到這個字符串之後,就對JSON的結構很明瞭了,就更容易的操作JSON。

以上是在Javascript中僅對於數據傳遞的xml與JSON的解析。在Javascript地盤內,JSON畢竟是主場作戰,其優勢當然要遠遠優越於xml。如果JSON中存儲Javascript複合對象,而且不知道其結構的話,我相信很多程序員也一樣是哭着解析JSON的。

②xml可擴展標記語言,標準通用標記語言的子集,是一種用於標記電子文件使其具有結構性的標記語言

其先驅是SGML和HTML。SGML,通用標識語言標準,是國際上定義電子文件結構和內容描述的標準,是一種非常複雜的文檔結構,主要用於大量高度結構化數據的防衛區和其它各種工業領域,便於分類和索引。同XML相比,SGML定義的功能很強大,然而它不適於Web數據描述,而且價格非常昂貴。XML與Access,Oracle和SQLServer等數據庫不同,數據庫提供了更強有力的數據存儲和分析能力,例如:數據索引、排序、查找、相關一致性等,XML僅僅是展示數據。事實上XML與其他數據表現形式最大的不同是:他極其簡單。這是一個看上去有點瑣細的優點,但正是這點使XML與衆不同。 

xml的作用

1、豐富文件(Rich Documents)-自定文件描述並使其更豐富; 2、屬於文件爲主的XML技術應用;

3、標記是用來定義一塊數據應該如何呈現;

4、解釋數據(Metadata)-描述其它文件或在線信息;

5、屬於數據爲主的XML技術應用;

6、標記是用來說明一塊資料的意義;

7、組態檔案(Configuration Files)-描述軟件的組態參數。

XML和HTML的不同可以歸納爲3點

一、XML擴展性比HTML強

XML(Extensible Markup Languages)是擴展標記語言的英語縮寫,他可以創建個性化的標記語言,可以稱之爲元語言。XML的標記語言可以自定義,這樣可以提供更多的數據操作,而不像HTML一樣,只能侷限於按一定的格式在終端顯示出來。HTML的功能只有瀏覽器放入顯示和打印,僅僅適合靜態網頁的要求。

二、XML的語法比HTML嚴格

由於XML的擴展性強,它需要穩定的基礎規則來支持擴展。它的嚴格規則爲:

①起始和結束的標籤相匹配

②嵌套標籤不能相互嵌套

③區分大小寫

相對應XML的嚴格規則,HTML語言並沒有規定標籤的絕對位置,也不區分大小寫,而這些全部由瀏覽器來完成識別和更正。

三、XML與HTML互補

XML可以獲得應用之間的相應信息,提供終端的多項處理要求,也能被其他的解析器和工具所使用,在現階段,XML可以轉化成相應的HTML,來適應當前瀏覽器的需求。

XML的優勢:

能使用預先定義標記。

定義數據的層次。

篩選我們只想得到的那部分數據

真正做到國際化。

真正實現數據交互

可重用。



③csv逗號分隔值(Comma-Separated Values,CSV,有時也稱爲字符分隔值,因爲分隔字符也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。純文本意味着該文件是一個字符序列,不含必須像二進制數字那樣被解讀的數據。CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或製表符。通常,所有記錄都有完全相同的字段序列。

CSV文件格式的通用標準並不存在,但是在RFC 4180中有基礎性的描述。使用的字符編碼同樣沒有被指定,但是7-bitASCII是最基本的通用編碼。

csv的使用規則:

1 開頭是不留空,以行爲單位。

2 可含或不含列名,含列名則居文件第一行。

3 一行數據不跨行,無空行。

4 以半角逗號(即,)作分隔符,列爲空也要表達其存在。

5 列內容如存在半角逗號(即,)則用半角雙引號(即"")將該字段值包含起來。

6 列內容如存在半角引號(即")則應替換成半角雙引號("")轉義,並用半角引號(即"")將該字段值包含起來。

7 文件讀寫時引號,逗號操作規則互逆。

8 內碼格式不限,可爲 ASCII、Unicode 或者其他。

9 不支持特殊字符



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章