json_encode() Inf 和 NaN 不能被 JSON 编码

Vis*_*021 7 php json

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

$test = ['key' => '6E01400'];
json_encode($test, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
Run Code Online (Sandbox Code Playgroud)

我知道它将键中的 'E' 视为指数,并尝试将其转换为类似 6.0 e+1400 之类的数字......不过我不知道。

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

Sea*_*hey 5

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

如果您要返回 ,则可以将该JSON_PARTIAL_OUTPUT_ON_ERROR选项设置为打开。PHP文档说,对于 NAN 或 INF 值,“0 将在这些特殊数字的位置进行编码”。json_encodeJSON_ERROR_INF_OR_NAN