json xml protobuf格式对比

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目前只提供整文解析方式。
上一篇:Docker容器生产实践1——永远设置容器内存限制


下一篇:这些阿里人都在用的办公软件,疫情期间免费开放!