JSON简介
json(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于ECMAScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json与xml比较:
json和xml都拥有丰富的解析手段;
xml可读性相对json较好;
json相对xml而言,数据体积更小;
json传输速度远远快于xml;
json编解码更容易,xml需要考虑子节点和父节点。
JSON实例
xml和json都使用结构化方法来标记数据:
|
|
|
|
可以看到,由于json所使用的字符要比xml少得多,可以大大得节约传输数据所占用得带宽。
JSON编解码
JAVA、Python和C++对于json的处理,都可以通过第三方库来完成,语言本身都不支持。
json
python自带的json库,对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。
python数据编码成json的规则如下:
json数据解码成python的规则如下:
对于中文数据,如果设定dumps(data,ensure_ascii=False)则会保留中文编码,如果设定dumps(data,ensure_ascii=True)则中文转成utf-8格式。
simplejson
simplejson为python第三方库,需要另外安装。
simplejson可以看作为json的精简一部分,没有json那么多功能。
Python自带的json,性能可以接受。simplejson如果没有C扩展加速,效率极其低下。
rapidjson
RapidJSON 是一个 C++ 的 JSON 解析器及生成器,被认为目前最快的json解析器,具体文档参考http://code.tencent.com/rapidjson.html.
有幸同RapidJSON的作者milo在一个项目组共过事,milo也对各个版本的JSON库做过评测,具体参考https://www.zhihu.com/question/23654513.