4

我正在使用 json_encode 将我的 php 多维数组转换为输出 json。通常,此函数会将所有值转换为字符串。为了确保整数值作为整数值发送到 javascript,我使用了数字检查:

$json = json_encode($data, JSON_NUMERIC_CHECK);

对于我的应用程序,除了一种情况外,这在所有情况下都可以正常工作。在 php 数组(从数据库中提取)中,有一个字段包含非常大的整数。我将它作为 VARCHAR 保存到数据库,但不幸的是,当编码为 json 时,它被转换为整数。问题是,由于这是一个非常大的整数,它会被四舍五入,因此不代表真实值。我该如何解决这个问题?

4

2 回答 2

0

您是否希望将大数转换为整数?你的问题让我相信你没有。如果是这种情况,请从调用中删除 JSON_NUMERIC_CHECK 选项,它不应更改字段的编码。

关于这个(和其他)常量的文档在这里

于 2012-12-19T17:31:43.213 回答
0

也许为时已晚,但我确实遇到了同样的问题,并且由于必须使用该版本运行的遗留代码而停留在服务器上的 PHP 5.3 上。我使用的解决方案是愚蠢的,但确实对我有用:简单地在从数据库读取的 varchar 长整数的末尾添加一个空格字符,然后将其发送到使用 JSON_NUMERIC_CHECK 的 json 编码。

于 2015-12-13T12:19:10.273 回答