Есть ли способ получить данные JSON из запроса и отправить их на MongoDB, сохранив целочисленную типизацию через числа с плавающей запятой? - PullRequest
0 голосов
/ 23 апреля 2019

Мне нужно сохранить числа, передаваемые в JSON, которые соответствуют требованиям, чтобы быть int32, для хранения в базе данных как int32 вместо числа с плавающей запятой.

У меня есть приложение Go, которое получает данные запроса JSON, которые вставляются в базу данных Mongo. Эти данные распаковываются в интерфейс и передаются в метод вставки mgo (https://godoc.org/github.com/globalsign/mgo#Collection.Insert).

По умолчанию, чтобы демонтировать данные в интерфейс, Go конвертирует числа в float64s. Проблема, с которой я столкнулся, состоит в том, что целые числа, не распределенные из JSON, не сохраняют свои типы должным образом, все числа передаются как числа с плавающей запятой, и после вставки в Mongo данные сохраняются как числа с плавающей запятой. Понятно, что это связано с ограничениями при наборе текста при использовании JSON в качестве держателя данных.

Поскольку данные JSON не имеют четкого определения и могут включать в себя различные типы вложенных динамических объектов, создание структур для этой проблемы не представляется приемлемым вариантом.

Я исследовал некоторые варианты, которые включают итерацию по данным JSON и использование UseNumbers () для декодирования, но проблема, с которой я сталкиваюсь, заключается в том, что операция может быть дорогой, поскольку некоторые данные JSON могут содержать несколько сотен Поля и их отражение могут привести к замедлению при обработке запросов, хотя я не знаю, насколько это повлияет на производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...