json格式(bson)簡介
json格式源自于js,它最大的特點就是一切都是對象,一個對象由鍵/值對表示:
{ “keyname”: value}
其中valve可以是如下類型:
- 字元串,用“”擴起來
- 數字
- bool:true和false
- 數組:用【】擴起來,用“,”分割例如
{“adds”:[“chengdu”,”xi’an”]}
- 對象:用{}擴起來例如:
{“adds”:{“chengdu”:”jinjiang”,“xi'an”:”bashing”}}
Json格式中字元集必須為utf8.
bson
全稱binary json一種類似于json的存儲格式。它源于json格式,在mongodb文檔資料庫中作為mongodb資料存儲格式。
它内部為了優化c語言解析和減少存儲空間,對json格式進行了一些新的定義。例如它引入了變長int格式,可以根據存儲的數值的大小決定存儲空間,而不是傳統int32預設作用4byte空間。它為了加快程式設計語言解析,在元素頭就定義了元素占用空間的大小,如此可以不用順序去讀最終比對到】,而一次性就跳轉到一個元素(對象)的結尾。
它的優點:更小的空間占用,更快的語言解析速度
xml格式
xml格式是一種結構化格式
json vs xml
json優點
- 易讀性 毋庸置疑json對于人類更加友好
- 易于解析:js,python,go都可以很友善的解析json格式
- 占用空間少:較xml格式json占用空間更少
xml 和json解析方式
xml有兩種解析方式
-
dom
dom方式将整個xml文檔當成文檔對象,進行解析。它要求一次性将所有内容讀入。消耗記憶體和處理時間。
-
Sax
一種流式處理方式,逐漸解析,而程式可以随時終止。
json目前隻提供整文解析方式。