JavaScript Object Notation(JSON)是一种标准文件格式,使用人类可读的文本来传输具有属性值对和数组数据类型的数据。这是最常见的数据格式之一,主要用于异步浏览器-服务器通信。JSON是与语言无关的格式。另一方面,BSON是一种计算机交换格式,主要用于数据存储和用作MongoDB数据库中的网络传输格式。它是一种简单的二进制形式,用于表示数据结构和关联数组(在MongoDB中通常称为文档或对象)。

让我们详细研究JSON和BSON:

BSON代表二进制JSON,它由包含字段名称,类型和值的有序元素列表组成。字段名称类型通常是一个字符串。它的基础包括JavaScript,并且当今有许多编程语言可以利用该代码生成和解析与JSON格式相关的数据。

BSON类型支持日期和二进制数据,由于其性质,它不是可读形式,而普通的JSON文件由键值对组成。BSON文件总是小于JSON文件不是强制性的,但是它肯定会跳过无关的记录,而对于JSON,则需要解析每个字节。这是在MongoDB中使用它的主要原因。

BSON类型格式是轻量级的,高度可遍历的并且本质上是快速的。BSON实现用于支持将对象和数组嵌入其他对象中。可以在BSON对象内部建立索引,并将对象与顶层和BSON键上的查询表达式进行匹配。BSON是二进制编码的JSON文档,用于将文档存储在集合中。BSON中添加了对JSON不支持的数据类型(如二进制和日期)的支持。

实际上,不需要有关BSON的许多信息。仅使用语言的本机类型和所提供的类型(例如驱动程序的ObjectID)是必需的,并且映射将自行完成到BSON类型。

两者都是市场上流行的选择。让我们讨论一些主要区别:

BSON是JSON的序列化格式编码格式,主要用于存储和访问文档,而JSON是一种人类可读的标准文件格式,主要用于以键值属性对的形式传输数据。

BSON的设计占用了更少的空间,但它并不比JSON高效。实际上,BSON在某些情况下比JSON使用更多的空间。其原因是可遍历性,这意味着BSON向文档添加了一些附加信息,例如字符串长度和子对象,这反过来又使遍历更快。

BSON的设计还具有相对较快的编码和解码技术。例如,所有那些整数都存储为32位整数,这样就不会与它们在文本之间进行解析。因此,与JSON相比,对于较小的整数,它占用更多空间,但是BSON解析起来要快得多。

除了上述要点外,BSON还使用JSON中不可用的其他数据类型,例如BinData和Date数据类型.BSON扩展了JSON类型模型,以提供其他数据类型,以便在不同语言中更有效地进行编码和解码而对于JSON,则未提供此类规定。它促进了数据交换以及与XML(主要是主要格式)一起使用。JSON支持您可以想到的所有基本数据类型,例如数字,字符串和其他布尔值。它还支持哈希和数组等数据类型。BSON使用JSON类型格式以与文档以关系数据库中的行和列形式存储数据的方式完全相同的方式以文档形式存储数据。

bson json c语言,对比平台--JSON和BSON之间的区别相关推荐

  1. gophp解释器_对比平台--Go和PHP之间的区别

    Go和PHP之间的区别 Go vs PHP是软件开发行业中的两种重要语言.Golang与PHP在本质上有一些相似之处,但在同一时间,Golang与PHP之间也存在许多差异.在这里,我们将对Go vs ...

  2. c与python的区别-对比平台--C和Python之间的区别

    C和Python之间的主要区别在于,C是一种面向结构的编程语言,而Python是一种面向对象的编程语言.通常,C用于开发可硬件操作的应用程序,而python被用作通用编程语言.C语言在编译器下运行,而 ...

  3. ibm websphere oracle weblogic,对比平台--WebLogic与WebSphere之间的区别

    通过各种协议(包括HTTP)向各种客户端应用程序提供对业务功能的访问的服务器.客户端应用程序可以使用这些功能,就像调用对象的方法一样.应用服务器管理自己的资源,例如安全性,事务处理,消息传递,资源池. ...

  4. python和c 的区别-对比平台--C和Python之间的区别

    C和Python之间的主要区别在于,C是一种面向结构的编程语言,而Python是一种面向对象的编程语言.通常,C用于开发可硬件操作的应用程序,而python被用作通用编程语言.C语言在编译器下运行,而 ...

  5. bsd和Linux哪个更适合服务器,对比平台--Linux与BSD之间的区别

    Linux 和 BSD都是免费的开源操作系统,受到Unix操作系统的极大启发.BSD代表伯克利软件发行版.Linux由芬兰学生Linus Torvalds开发.两种Linux的共同点都多于不同点.但是 ...

  6. android判断以太网还是wifi,对比平台--WiFi和以太网之间的区别

    Wi-Fi和以太网之间的区别 Wi-Fi与以太网是互联网访问的比较技术.互联网技术的发展和对互联网的无线访问对商业和个人使用都提出了很高的要求.Wi-Fi是使用无线电波通过互联网连接移动设备和访问设备 ...

  7. kafka redis vs 发布订阅_对比平台--Redis Vs Kafka 之间的区别

    Redis和Kafka之间的区别 在本文中,我们将探讨Redis与Kafka之间的最高差异和性能. Redis: Redis是一个内存中的键值数据存储,也是开源的.它可以非常快地用于缓存会话管理,高性 ...

  8. linux nfs iscsi,对比平台--iSCSI和NFS之间的区别

    iSCSI或Internet小型计算机系统接口是一种块传输层协议,主要在块级协议接口上工作.块协议还可以直接访问存储,并通过协议SCSI控制向内或向外的数据流.来自源和目标的数据被内核化,因为它们在i ...

  9. java与c语言工作量对比比例,对比平台-- C ++与Java之间的差异

    C ++与Java之间的差异 创建为C语言扩展的通用编程语言,可以称为带有类的C语言,称为C ++.该语言为系统和内存提供高级控制,并且随着跨平台语言开发高性能应用程序.该语言由Bjarne Stro ...

最新文章

  1. 动态规划(DP)通俗讲解
  2. 全球投资者为阿里尖叫!阿里CEO张勇详解天猫商业新力量
  3. 对require和import的认识
  4. java调用 火眼臻睛,连接创新,发现未来,臻识科技受邀CCF-GAIR,论道浪潮之巅...
  5. 最新版Intellij IDEA视频教程 20170814
  6. Qt文档阅读笔记-TextEdit QML Type官方解析及实例
  7. 集合各实现类的底层实现原理
  8. java在工厂自动化的应用_java 工厂的变形模拟的各种应用
  9. 面向车、路、城,华人运通“智路”示范项目开通试运行
  10. 你需要的不是大数据——而是正确的数据
  11. html实体编码_为什么涨薪的永远不是你?你的编码姿势对了吗?
  12. (MathType)公式编号(1)和(2a)(2b)混编
  13. java类型转换方法_Java中基本数据类型转换的方法
  14. 推荐系统之协同过滤算法
  15. 常用的北斗高精度定位技术有哪些?
  16. shell深井冰之linux命令行下使用豆瓣FM
  17. 荒野乱斗好友系统分析
  18. 微带线特性阻抗计算公式_HFSS 计算 微带线 特征阻抗
  19. 安装ubuntu 创建分区_安装Ubuntu后如何创建单独的主分区
  20. 几种视频格式(RMVB,FLV,MP4,AVI等等)区别比较

热门文章

  1. 看不见的战斗——阿里云护航世界杯直播容灾实践
  2. 【HBase从入门到精通系列】误删数据如何抢救?
  3. 每个产品经理都应该知道的机器学习术语
  4. 用深度学习解决Bongard问题
  5. kubernetes精华问答 | Swarm和K8S的共同点有哪些?
  6. css x轴不滚动_css – 固定div,动态内容不滚动
  7. mysql驱动profilesql_java连接mysql的驱动配置问题
  8. 第6篇:Flowable-Modeler详述之常见问题Table act_ge_property doesn't exist
  9. RabbitMQ消息队列简单异步邮件发送和订单异步处理实战【应用解耦】【异步削峰】
  10. 利用python做一个小游戏_如何使用python做一个简单的猜数字的小游戏