一尘不染

PHP json_encode将数字编码为字符串

javascript

我在使用PHP json_encode函数时遇到问题。它将数字编码为字符串,例如

array('id' => 3)

变成

"{ ["id": "3", ...)

当js遇到这些值时,它将它们解释为字符串,并且对它们的数字运算失败。有谁知道某种防止json_encode将数字编码为字符串的方法?谢谢!


阅读 951

收藏
2020-05-01

共1个答案

一尘不染

我做了一个非常快速的测试:

$a = array(
    'id' => 152,
    'another' => 'test',
    'ananother' => 456,
);
$json = json_encode($a);
echo $json;

如果我没记错的话,这似乎就像你所描述的那样?

我得到的输出:

{"id":152,"another":"test","ananother":456}

因此,在这种情况下,整数尚未转换为字符串。

不过,这可能取决于我们使用的PHP版本:根据PHP版本,已经纠正了几个与json_encode相关的错误…

此测试已使用PHP 5.2.6进行;我在PHP 5.2.9和5.3.0中得到了同样的东西;我没有另一个5.2.x版本可以测试,尽管:-(

您正在使用哪个版本的PHP?还是您的测试用例比您发布的示例更复杂?

2020-05-01