Функция PHP json_decode декодирует значение float с нулями после точки as int

У меня есть строка JSON, содержащая некоторый ключ со следующим значением: 123.00. Когда я использую функцию json_decode, я получаю декодированную строку, где предыдущий ключ равен 123, а не 123.00. Есть ли способ исправить декодирование таких значений без упаковки в кавычки?

Это в настоящее время воспитывается как ошибка PHP:

Отчет об ошибке : https://bugs.php.net/bug.php?id=50224

В будущем могут быть функциональные возможности для передачи флага через options параметров для более строгой типизации. На данный момент, однако, обернуть его в кавычки будет достаточно.

Я не думаю, что это возможно!

 //convert the json to a string before json_decode $res = preg_replace( '/next_cursor":(\d+)/', 'next_cursor":"\1"', $json ); 
 number_format($number, 2) 

выводить число через это?

Вы можете использовать параметр JSON_BIGINT_AS_STRING , например:

 $json = json_decode($input, true, 512, JSON_BIGINT_AS_STRING); 

Осторожно, но это работает только с PHP 5.4+!