天天看點

json xml protobuf格式對比json格式(bson)簡介xml格式json vs xml

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目前隻提供整文解析方式。