JSON 和 BSON 从名称上来看仅有一个字母的差别,非常相似,那么它们之间有什么区别呢?本节我们就来简单介绍一下。
JSON 全称“JavaScript Object Notation”,译为“JavaScript 对象简谱”或“JavaScript 对象表示法”,是一种轻量级的、基于文本的、开放的数据交换格式,主要用来在浏览器和服务器之间进行通信。
下面展示了一个简单的 JSON 数据:
{
"title":"JSON教程",
"author":"城东书院",
"url":"http://www.cdsy.xyz/",
"catalogue":[
"JSON是什么?",
"JSONP是什么?",
"JSON语法规则"
]
}
有关 JSON 的详细介绍,您可以阅读《JSON是什么?》一节。
BSON 全称“Binary Serialized Document Format”,译为“二进制序列化文档格式”,是由 10gen(一家公司的名称)开发的一种数据格式,目前主要用于 MongoDB 数据库中,是 MongoDB 的数据存储格式。
BSON 基于 JSON,在 JSON 的基础上进行了升级,支持更多的数据类型。有时也将 BSON 称为“Binary JSON”,即“二进制 JSON”。
注意:BSON 并非只能用于 MongoDB,它也可以在其它编程语言中使用。
与 JSON 相比,BSON 存取的效率更高,而且占用的空间更小。另外,除了支持 JSON 中的数据类型外,BSON 还支持日期(Date)和二进制(BinData)等类型。
JSON 和 BSON 之间最主要的区别如下表所示:
JSON | BSON |
---|---|
JSON 是 javascript 对象表示法 | BSON 是二进制 JSON |
是一种轻量级的、基于文本的、开放的数据交换格式 | 是一种二进制序列化文档格式 |
JSON 包含一些基本数据类型,如字符串、数字、布尔值、空值 | 除了支持 JSON 中的类型外,BSON 还包含一些额外的数据类型,例如日期(Date)、二进制(BinData)等 |
AnyDB、redis 等数据库将数据存储为 JSON 格式 | MongoDB 中将数据存储为 BSON 格式 |
主要用于传输数据 | 主要用于存储数据 |
没有响应的编码和解码技术 | 有专用的编码和解码技术 |
如果想从 JSON 文件中读取指定信息,需要遍历整个数据 | 在 BSON 中,可以使用索引跳过到指定内容 |
JSON 格式不需要解析,因为它是人类可读的 | BSON 需要解析,因为它是二进制的 |
JSON 是对象和数组的组合,其中对象是键值对的集合,而数组是元素的有序列表 | BSON 是二进制数据,在其中可以存储一些附加信息,例如字符串长度、对象类型等 |