json - 有没有办法从请求中接收 JSON 数据并将其推送到 MongoDB,在浮点数上保留整数类型?
问题描述
我需要保留在 JSON 中传递的数字,这些数字符合要求作为 int32 存储在数据库中的 int32 而不是浮点数。
我有一个 Go 应用程序,它接收插入到 Mongo 数据库中的 JSON 请求数据。这些数据被解组到一个接口中,并传递给 mgo 的 Insert 方法(https://godoc.org/github.com/globalsign/mgo#Collection.Insert)。
默认情况下,为了将数据解组到接口中,Go 将数字转换为 float64。我遇到的问题是从 JSON 中解组的整数没有正确保存它们的类型,所有数字都作为浮点数传入,并且在插入 Mongo 之后,数据被保存为浮点数。可以理解,这是由于使用 JSON 作为数据持有者时对输入的限制。
由于 JSON 数据没有明确定义并且可能包含不同类型的嵌套动态对象,因此为这个问题创建结构似乎不是一个可行的选择。
我研究了一些选项,包括迭代 JSON 数据和使用 UseNumbers() 进行解码,但我面临的问题是操作可能很昂贵,因为一些 JSON 数据可能包含数百个字段和反射在处理请求时,这些字段可能会导致速度变慢,尽管我不知道性能影响会有多大。
解决方案
推荐阅读
- javascript - 在 JavaScript 中获取 Base64 gif 的第一帧
- sql-server - Sql连接表并从同一列上获取数据
- php - 现有 laravel 项目的 file_put_contents 错误
- node.js - 即使用户被删除,Firebase 也会显示经过身份验证的用户
- powerbi - 计算列:选择影响计算的列
- android - 如何更改android服务的优先级(好值)?
- html - 内容离开父元素并进入下一个元素
- python - 比较 Python 中的 2 个超大文件
- r - str_extract_all:返回在字符串中找到的所有模式连接为向量
- c# - 是否可以禁用第一行单击它?