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