您好,欢迎访问一九零五行业门户网

json返回数据格式的奇怪问题?

在本地的环境中 使用laravel3 返回的json数据都是正常的
例如{id:1}
但把代码传到开发机后 返回的数据变成了
{id:1}
就是所有的值全加上了双引号, 全变成了字符串类型, 非常奇怪,不知道是服务器apache的设置问题还是什么?
header 头部 已经是 content-type application/json; charset=utf-8
本地环境 php5.4 mysql 5.6
开发机环境 php5.3 mysql 5.0
目前暂定问题 是 php5.3的链接mysql驱动问题 php从5.3开始才可以原生返回mysql字段类型,
http://stackoverflow.com/questions/1197005/how-to-get-numeric-types-from-mysql-using-pdo#answer-1197041
现在的问题是要安装 mysqlnd 在centos6.4, 的php5.3上, 但默认包里面没有,不知道如何安装?
http://stackoverflow.com/questions/13159518/how-to-enable-mysqlnd-for-php
回复内容: 在本地的环境中 使用laravel3 返回的json数据都是正常的
例如{id:1}
但把代码传到开发机后 返回的数据变成了
{id:1}
就是所有的值全加上了双引号, 全变成了字符串类型, 非常奇怪,不知道是服务器apache的设置问题还是什么?
header 头部 已经是 content-type application/json; charset=utf-8
本地环境 php5.4 mysql 5.6
开发机环境 php5.3 mysql 5.0
目前暂定问题 是 php5.3的链接mysql驱动问题 php从5.3开始才可以原生返回mysql字段类型,
http://stackoverflow.com/questions/1197005/how-to-get-numeric-types-from-mysql-using-pdo#answer-1197041
现在的问题是要安装 mysqlnd 在centos6.4, 的php5.3上, 但默认包里面没有,不知道如何安装?
http://stackoverflow.com/questions/13159518/how-to-enable-mysqlnd-for-php
应该跟 apache 无关,是程序代码的问题吧,是不是在哪里把数字转换成字符串了?
可以在数据返回前再做下转换成整型的操作么
自问自答,目前暂定为是mysql驱动的事情 , 不知道有人遇到过吗?
http://stackoverflow.com/questions/1197005/how-to-get-numeric-types-from-mysql-using-pdo#answer-1197041
请贴出你的 php 版本,以及使用到 json_encode 时,所用参数的来源,因为很有可能你的数据来源是数据库的时候,数据库里定义的类型是字符串,于是在 json_encode 的时候,就变成了字符串。
我用的 php 版本是 5.4.23,直接用硬编码做了 json_encode 的测试:
'caiknife', 'age' => 18, 'height' => '175'];zend_debug::dump(json_encode($json));zend_debug::dump(zend_json::encode($json));
输出结果:
string '{name:caiknife,age:18,height:175}' (length=43)string '{name:caiknife,age:18,height:175}' (length=43)
你是在返回的时候将json对象tostring了么?
其它类似信息

推荐信息