我正在将我的数组编码为JSON,下面是它给出的情况 Inf和NaN不能是JSON编码错误
$test = ['key' => '6E01400'];
json_encode($test, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
我理解它认为' E'在作为指数的密钥中,并尝试转换为类似6.0 e + 1400的数字......但我不知道不确定。
无论如何我可以避免像这样的特殊情况转换,我真的需要在这里使用JSON_NUMERIC_CHECK选项,任何线索的人?
答案 0 :(得分:0)
在PHP 5.5.0及更高版本中有一个解决方法,以便您仍然可以输出JSON,但它会重写您的数据。
JSON_PARTIAL_OUTPUT_ON_ERROR
选项可以在json_encode
上设置,如果您要返回JSON_ERROR_INF_OR_NAN
。 PHP doc表示在NAN或INF值的情况下," 0将被编码为这些特殊数字的位置。"