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

Php json_encode()Inf和NaN不能进行json编码,php,json,Php,Json,我将数组编码为JSON,下面是它给出的示例 Inf和NaN不能为JSON编码错误 $test = ['key' => '6E01400']; json_encode($test, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT); 我知道它将键中的“E”视为指数,并尝试将其转换为一个数字,比如6.0e+1400……我不知道,但也不确定 不管怎样,我可以避免这种特殊情况下的转换吗?我真的需要在这里使用JSON\u NUMERIC\u CHECK选项,有什么线索

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

$test = ['key' => '6E01400'];
json_encode($test, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
我知道它将键中的“E”视为指数,并尝试将其转换为一个数字,比如6.0e+1400……我不知道,但也不确定


不管怎样,我可以避免这种特殊情况下的转换吗?我真的需要在这里使用JSON\u NUMERIC\u CHECK选项,有什么线索吗

在PHP5.5.0及更高版本中有一个解决方案,这样您仍然可以获得JSON输出,但它确实重写了您的数据


如果您返回的是
JSON\u ERROR\u INF\u或\u NAN
,则可以在
JSON\u encode
上设置
JSON\u PARTIAL\u OUTPUT\u ON\u ERROR
选项。在NAN或INF值的情况下,“0将被编码在这些特殊数字的位置。”

您使用的是哪个版本的PHP?看起来这是在5.5中修复的我相信这就是你所指的bug?我使用的是PHP5.6.99-hhvmWell,这太奇怪了。使用HHVM不应该对此产生影响。我没有安装HHVM,所以我不能确定。但是在我的本地机器(5.6.3)上运行您的代码时,输出的
string(24)“{”key:“6E01400”}”
没有错误,我想这就是您要查找的。使用PHPfiddle,我得到了相同的结果。但在其他几个PHP沙盒网站上,我得到了随机结果。一些错误与您描述的错误相同,其他的,如我的计算机和phpFIDLE,工作正常。我要做一些研究。更正我有5.5.3而不是5.6.3谢谢@squegy!