json — php json_encode не следует удалять конечные нули

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

Когда нет десятичных знаков с конечными нулями, у нас все хорошо. Тем не менее, если мы встретим ключ с double/float Ценность у нас в беде. Мы не можем использовать %g форматирование на устройстве (STM32), поэтому нам нужно сделать что-то вроде %1.5i чтобы получить десятичные точки, отправленные на сервер.

{
"key":"emXOlXEBv9",
"data":[
"key_with_trailing_zeros":12.200,
"time":"2017-12-22 19:35:41"}
],
"csum":"XXX"}

Так что теперь устройство вычисляет контрольную сумму по key а также data свойства. Когда мы отправляем его на сервер и после json_encode мы получаем:

{
"key":"emXOlXEBv9",
"data":[
"key_with_trailing_zeros":12.2,
"time":"2017-12-22 19:35:41"}
],
"csum":"XXX"}

Хотя значение данных может использоваться нашей системой в порядке, контрольная сумма не выполняется, поскольку строковый буфер, используемый для вычисления контрольной суммы, несколько отличается.

Без фокусов я не могу использовать %f или же %g на устройстве, так что, какие варианты у меня есть, поверните все поля в строку и прочитайте числовое значение на сервере или есть какая-то волшебная пуля, которую я еще не нашел?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]