描述:
当解析包含整数或带有前导零的浮点数的 JSON Payload 作为未使用双引号转义的值时,json_decode() 返回 false。
即使认为前导零(大多数时候)与整数无关,该函数至少应该将零修剪掉并且不会使整个解码过程失败。从一些 Java JSON 生成器返回的 JSON 带有包含前导零且不被双引号转义的整数。
重现代码:
<?php
$payload = <<<payload
{
"test" : 06
}
payload;
if(!$obj = json_decode($payload)) die("Problems on JSON Parsing the json_decode() function has returned false");
print_r($obj);
预期结果:
stdClass Object ( [test] => 6 )
实际结果:
Problems on JSON Parsing the json_decode() function has returned false
我的问题:
这不是这里所解释的 JSON 。我无法真正控制用户发送给我的内容,也无法告诉他们具体到修剪前导零。
在将有效负载输入 json_decode 之前如何修剪零?