【问题标题】:How to view mgo's bson.Raw in "pretty" text如何在“漂亮”文本中查看 mgo 的 bson.Raw
【发布时间】:2018-08-01 12:04:03
【问题描述】:

我希望能够将我从 golang 的 mgo 库中获取的原始 bson 数据输出到控制台以进行调试,但一直无法找到实现此目的的方法。

使用 JSON,我会这样做:

    formatedData, err := json.MarshalIndent(rawData, "", "   ")
        if err != nil {
        log.Print(err)
    }
    fmt.Printf("%s", formatedData)

BSON 有没有等效的方法?

【问题讨论】:

标签: go bson mgo


【解决方案1】:

bson 是一种二进制格式,它只是一个字节片。它本身是人类无法读取的,因为这种格式包含有关字段长度等的信息,并且所有数据都非常紧凑。它已经编码,因此无需编组。

您可以按原样输出,但不可读。

在此处查看 bson 规范:http://bsonspec.org/#/specification

如果您想查看 bson 的所有内容,可以将其解组到地图中:

m := map[string]interface{}{}
rawData.Unmarshal(&m)
fmt.Printf("%+v\n", m)

【讨论】:

  • 感谢 mbuechmann,成功了。这也让我意识到我想得太多了,因为我也可以把它放到一个接口中,然后通过我的 prettyJSON 函数运行它。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2014-06-11
  • 2020-06-20
  • 2012-05-29
  • 2014-07-01
  • 1970-01-01
  • 2018-08-29
  • 2015-05-12
  • 1970-01-01
相关资源
最近更新 更多