`

【转】BSON 和 JSON 的区别

阅读更多
BSON与JSON的区别
BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。

BSON主要会实现以下三点目标:

1.更快的遍历速度
对JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数据读取,需要对此文档进行扫描才行,需要进行麻烦的数据结构匹配,比如括号的匹配,而BSON对JSON的一大改进就是,它会将JSON的每一个元素的长度存在元素的头部,这样你只需要读取到元素长度就能直接seek到指定的点上进行读取了。

2.操作更简易
对JSON来说,数据存储是无类型的,比如你要修改基本一个值,从9到10,由于从一个字符变成了两个,所以可能其后面的所有内容都需要往后移一位才可以。而使用BSON,你可以指定这个列为数字列,那么无论数字从9长到10还是100,我们都只是在存储数字的那一位上进行修改,不会导致数据总长变大。当然,在MongoDB中,如果数字从整形增大到长整型,还是会导致数据总长变大的。

3.增加了额外的数据类型
JSON是一个很方便的数据交换格式,但是其类型比较有限。BSON在其基础上增加了“byte array”数据类型。这使得二进制的存储不再需要先base64转换后再存成JSON。大大减少了计算开销和数据大小。

当然,在有的时候,BSON相对JSON来说也并没有空间上的优势,比如对{“field”:7},在JSON的存储上7只使用了一个字节,而如果用BSON,那就是至少4个字节(32位)

目前在10gen的努力下,BSON已经有了针对多种语言的编码解码包。并且都是Apache 2 license下开源的。并且还在随着MongoDB进一步地发展。

 转自http://www.cnblogs.com/jamesldj/p/3324564.html

 

总结:

1. bson可以 seek 长度

2. bson有数据类型

分享到:
评论

相关推荐

    bson_json.zip

    在Golang中,BSON(Binary JSON)和JSON(JavaScript Object Notation)是两种常见的数据序列化格式。BSON提供了一种二进制形式的数据表示,适合于高性能的网络通信和数据库存储,而JSON则是一种轻量级的人可读文本...

    JSON BSON 效率比较

    JSON(JavaScript Object Notation)和BSON(Binary JSON)都是数据交换格式,广泛应用于网络通信和数据存储。本文将深入探讨两者在效率方面的差异,并基于提供的文件名进行假设性的分析。 JSON是一种轻量级的数据...

    最新波动率/恐慌指数VIX数据(exce/bson/json,至2020-07-08)

    波动率/恐慌指数VIX数据(exce/bson/json) - 根据实盘原始股票期权行情数据计算VIX从2015-01至2020-07-08(持续更新中...) - 根据[White Paper Cboe Volatility Index]...

    json_bson.zip

    JSON(JavaScript Object Notation)和BSON(Binary JSON)是两种常见的数据序列化格式,用于在应用程序之间交换数据。在本例中,我们有一个名为"json_bson.zip"的压缩包,它包含了一个使用QT库编写的示例,该示例...

    bson-json-to-csv

    bson-json-to-csv 从嵌套的bson / json文件中创建平面的csv文件 用法 适用于json / bson对象流。 例如, { " name " : " john " , " location " : { " city " : " mumbai " , " country " : " india " } } {...

    json-to-bson-go:帮助开发人员生成Go BSON类映射的模块

    JSON(JavaScript Object Notation)和BSON(Binary JSON)都是数据序列化格式,常用于网络通信和数据库存储。在Golang这种静态类型的编程语言中,处理这两种格式时,通常需要手动定义结构体来映射JSON或BSON数据。`...

    JSONtoBSONandBSONtoJSON:GCI 任务

    JSON-BSON 和 BSON-JSON 转换器JBUtils.java 文件包含 7 个函数: 功能描述从文件中读取 JSON 它将输入文件的路径作为参数,读取字符串,将其转换为 JSONObject 并返回它。 从文件中读取 BSON 它将输入文件的路径...

    C++结构体和json/xml之间互相转换

    本篇将探讨如何在C++中实现结构体与JSON和XML之间的互转,并以`bson`库在`xbson`中的支持为例进行说明。 首先,让我们了解JSON和XML的基本概念。JSON是一种轻量级的数据交换格式,其数据结构主要由对象(键值对)和...

    BSON Console 例子

    BSON的主要优点在于其二进制特性,它能够将JSON对象转换为二进制形式,减少数据的存储空间,并且在处理大量数据时,其解析和序列化速度显著快于纯文本的JSON。这对于需要频繁交换大量结构化数据的Web服务和分布式...

    android-bson

    BSON是一种二进制形式的数据表示方法,它在JSON基础上增加了对日期、二进制数据、大型整数等类型的支持,同时以更紧凑的格式存储数据,提高了序列化和反序列化的效率。 BSON协议在Android中的应用通常涉及以下几个...

    Node.js-JacksonJSON处理器的一个BSON生器和解析器

    总结来说,"Jackson JSON处理器的一个BSON生器和解析器"是Java开发者处理BSON数据的一种工具,通过它,可以充分利用Jackson库的强大功能来实现BSON数据的序列化和反序列化,尤其在与Node.js环境交互时,能够提供更好...

    C# Json格式的转换

    总的来说,C#中的JSON转换主要依赖于Json.NET库,它提供了全面且高效的解决方案,包括对JSON和BSON格式的支持。通过理解和熟练运用Json.NET,开发者可以轻松地处理JSON数据,实现应用程序的数据交换和序列化需求。

    用于Jackson JSON处理器的可插拔BSON生成器和解析器。-Android开发

    它通过用作Jackson的文档或BSON的主要交换和持久性格式而倍受关注,该库在Jackson JSON处理器中增加了对BSON的支持。 BSON是JSON的二进制表示形式。 它是众所周知的MongoDB的主要交换和持久性格式。 快速入门只需...

    C++实现的BOSN bson-cpp的编译

    在IT行业中,BSON(Binary JSON)是一种数据序列化格式,它类似于JSON,但使用二进制表示形式,使得在存储和传输数据时更高效。BSON-cpp是C++实现的一个库,允许开发者在C++项目中方便地处理BSON数据。本篇文章将...

    mongodb BSON的基本使用教程

    BSON(Binary JSON)是MongoDB中用于存储数据的二进制格式,它结合了JSON的易读性和二进制数据的效率。本教程将详细介绍MongoDB中的BSON使用,以及如何通过Go语言的mgo驱动进行操作。 1. **BSON数据类型与结构体...

    C# BSON 协议

    C# BSON(Binary JSON)协议是一种数据序列化格式,它以二进制形式表示JSON(JavaScript Object Notation)数据,从而提供更快的读写速度和更小的数据传输体积。在.NET环境中,C#开发者可以利用BSON库来处理这种数据...

    Python库 | bson-0.4.2.tar.gz

    BSON的设计目标是在保持JSON的易读性和灵活性的同时,提高在网络中的传输效率和存储效率。BSON库在Python中扮演的角色就是对这种数据格式进行编码和解码。 "Bson-0.4.2.tar.gz"是一个源代码压缩包,通常用于分发...

    前端项目-js-bson.zip

    BSON(Binary JSON)是一种数据格式,它扩展了JSON(JavaScript Object Notation)标准,允许存储二进制数据和其他类型的数据,如日期和对象ID,使其更适合于数据库存储和传输。 首先,我们需要理解BSON的重要性。...

    json data lib,json.jar,json 资源包

    JSON数据库则用于存储和检索JSON格式的数据,例如MongoDB就是一个流行的NoSQL数据库,它的主要数据存储格式就是JSON的扩展——BSON。这些数据库通常提供高效、灵活的数据操作,特别适合处理结构不固定或半结构化的...

    BSON格式解释编程开发技术共4页.pdf.zip

    1. **可读性**:由于BSON基于JSON,它保持了JSON的易于理解和解析的特性,使得数据交换变得更加直观。对于开发者而言,这使得调试和理解数据流变得简单。 2. **二进制效率**:BSON是二进制编码的,相比纯文本的JSON...

Global site tag (gtag.js) - Google Analytics