PHP函数json_decode在点之后用零作为int解码浮点值

时间:2012-09-21 13:46:40

标签: php json

我有一个JSON字符串,其中包含一些具有以下值的键:123.00。当我使用json_decode函数时,我得到解码后的字符串,其中前一个键等于123,而不是123.00。有没有办法纠正这些值的解码而不包含在引号中?

5 个答案:

答案 0 :(得分:7)

目前这是一个PHP错误:

错误报告https://bugs.php.net/bug.php?id=50224

将来可能会有一些功能可以通过options参数传递一个标志,以便进行更严格的输入。但是现在,用引号括起来就足够了。

答案 1 :(得分:1)

我认为不可能!

答案 2 :(得分:1)

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

答案 3 :(得分:0)

number_format($number, 2) 

通过那个输出数字?

答案 4 :(得分:0)

您可以使用JSON_BIGINT_AS_STRING选项,例如:

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

小心,但这只适用于PHP 5.4 +!