首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解BSON符号

理解BSON符号
EN

Stack Overflow用户
提问于 2013-04-02 10:25:34
回答 1查看 999关注 0票数 4

我试着理解BSON Notations网站BSON站点的意思。然而,我无法理解这些关联背后的原因。

我还提出了以下问题,但由于以下原因,我并不信服。

问题1:不熟悉ruby实现

问题2:我理解字节分配。但对符号不确定。

我想知道是如何为下面的示例BSON站点中形成bson对象的

1.{“你好”:"world"}

2.{"BSON":“了不起”,5.05,1986年}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 12:49:20

{"hello":"world"}

代码语言:javascript
复制
\x16\x00\x00\x00
  \x02 hello\x00 \x06\x00\x00\x00 world\x00
\x00

(总计: 22字节)

前四个字节包含32位小对数值整数的总长度。

\x16\x00\x00\x00 =>,小数点是22。

现在来了第一个要素。第一个字节给出数据的类型。

\x02 =>,这是一个UTF-8字符串.

然后是第一个元素的名称,作为一个以空结尾的字符串。

hello\x00

接下来是先前给定类型中元素的数据,在本例中是一个字符串。对于可扫描性(因此在不需要字符串时可以快速跳过),字符串以其长度开始,并以空结尾。

\x06\x00\x00\x00 =>,长度是6。

world\x00

现在会有后续的元素,如果有的话。整个事件以空字节结束。

\x00

{"BSON":“超棒”,5.05,1986年}

代码语言:javascript
复制
\x31\x00\x00\x00
  \x04 BSON\x00 \x26\x00\x00\x00
                  \x02 0\x00 \x08\x00\x00\x00 awesome\x00
                  \x01 1\x00 \x33\x33\x33\x33\x33\x33\x14\x40
                  \x10 2\x00 \xc2\x07\x00\x00
                \x00
\x00

(总体: 49字节,数组: 38字节)

前四个字节包含32位小对数值整数的总长度。

\x31\x00\x00\x00 =>,小数点是49。

现在来了第一个要素。第一个字节给出数据的类型。

\x04,=>,这是一个数组。

然后是第一个元素的名称,作为一个以空结尾的字符串。

BSON\x00

接下来是先前给定类型中元素的数据,在本例中是一个数组。

引号:“数组的文档是一个普通的BSON文档,键以整数开头,从0(.)开始。”

对于可扫描性,并且由于它们本身就构成文档,数组以其长度开始,并以空结尾。

\x26\x00\x00\x00 =>,小数是38。

现在是数组的第一个元素。第一个字节给出数据的类型。

\x02 =>,这是一个UTF-8字符串.

然后是数组的第一个元素的名称,null结束。

0\x00 =>,那是0键。

接下来是先前给定类型中元素的数据,在本例中是一个字符串。字符串以其长度开始,并以空结尾。

\x08\x00\x00\x00 =>长度8

awesome\x00

现在是数组的第二个元素。第一个字节给出数据的类型。

\x01,=>,这是一个双浮点数。

然后是数组的第二个元素的名称,null终止。

1\x00,=>,那是键1。

接下来是先前给定类型中元素的数据,在本例中是一个双浮点数。

\x33\x33\x33\x33\x33\x33\x14\x40 =>是5.5。

现在是数组的第三个元素。第一个字节给出数据的类型。

\x10 =>,这是一个32位的整数.

然后是数组的第三个元素的名称,null终止。

2\x00,=>,那是键2。

接下来是先前给定类型中元素的数据,在本例中为32位整数。

那是1986年的\xc2\x07\x00\x00 =>。

数组以空字节结束。

\x00

整个事件以空字节结束。

\x00

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15761740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档