我正在使用 PHP 的 PDO 来查询 MySQL 数据库。它以字符串形式返回数字和整数,并且弄乱了我的 JSON。
除了逐行类型转换值之外,还有更好的方法来修复它吗?
array(2) {
["name"]=> string(11) "Preliminary"
["sell_price"]=> string(6) "864.00"
}
如果您使用的是 php 5.3.3 或更高版本,则可以使用JSON_NUMERIC_CHECK
第二个参数来json_encode
执行此操作。
尽管@Explosion Pills 在这种情况下可以满足@user1032531 的需求,但它并没有解决问题的第一个来源。
正如您在原始问题中看到的那样,在 PHP 端,值 fromsell_price
已经是 a string
,尽管正如用户所说,它在数据库中存储为“数字”(我们不知道它是 aDECIMAL
还是 a FLOAT
)。
好吧,正如用户@jameshfisher 在他的评论中指出的那样,当将 PDO 与 MySQL 一起使用时,可能需要适当的配置才能将“数字”作为“数字”。您可以点击他的链接以获得使其正常工作所需的几乎所有内容。
Appart 从那开始,接受的答案是有效的,因为如果不使用,JSON_NUMERIC_CHECK
json_encode
无论变量的类型如何,都会将所有内容作为文本发送,并且在使用它时,它会将值转换为基于猜测而不是原始类型的类型变种。