json_encode()Inf和NaN不能进行JSON编码

时间:2015-10-27 20:03:36

标签: php json

我正在将我的数组编码为JSON,下面是它给出的情况 Inf和NaN不能是JSON编码错误

$test = ['key' => '6E01400'];
json_encode($test, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);

我理解它认为' E'在作为指数的密钥中,并尝试转换为类似6.0 e + 1400的数字......但我不知道不确定。

无论如何我可以避免像这样的特殊情况转换,我真的需要在这里使用JSON_NUMERIC_CHECK选项,任何线索的人?

1 个答案:

答案 0 :(得分:0)

在PHP 5.5.0及更高版本中有一个解决方法,以便您仍然可以输出JSON,但它会重写您的数据。

JSON_PARTIAL_OUTPUT_ON_ERROR选项可以在json_encode上设置,如果您要返回JSON_ERROR_INF_OR_NANPHP doc表示在NAN或INF值的情况下," 0将被编码为这些特殊数字的位置。"