rest api 返回的数据,有些字段是字符串,而有些数据是数字。因为查询mysql返回的数据,全部都是加了双引号的(都当成字符串)。我希望的是数字不要加双引号,而字符串就加上双引号。所以在进行json_encode() 时,加了参数 json_numeric_check(参考)
但是问题来了:加了这个参数后,它会把 decimal 类型的 价格 price 比如:20.00 ,后面的小数点去掉了,还有一个就是,比如说它也会把比如身份证号转换成了科学计数法了。
比如,转换前:
{ username: lili, passowrd: 123456, age: 25, card_no: 440901197709194316, balance: 20.00}
使用 json_encode($data, json_numeric_check),转换后:
{ username: lili, passowrd: 123456, age: 25, card_no: 4.4090119770919e+17, balance: 20}
我希望的是:card_no 和 balance 都要完整显示,而不是被截取了(比如,它们可以保持为字符串这样),但是像 password 这些数字字段依然会被转换为数字显示(双引号去掉)。目前有没有比较好的解决办法??
如下是我希望的结果:
{ username: lili, passowrd: 123456, age: 25, card_no: 440901197709194316, balance: 20.00}
谢谢~~!!
回复内容: rest api 返回的数据,有些字段是字符串,而有些数据是数字。因为查询mysql返回的数据,全部都是加了双引号的(都当成字符串)。我希望的是数字不要加双引号,而字符串就加上双引号。所以在进行json_encode() 时,加了参数 json_numeric_check(参考)
但是问题来了:加了这个参数后,它会把 decimal 类型的 价格 price 比如:20.00 ,后面的小数点去掉了,还有一个就是,比如说它也会把比如身份证号转换成了科学计数法了。
比如,转换前:
{ username: lili, passowrd: 123456, age: 25, card_no: 440901197709194316, balance: 20.00}
使用 json_encode($data, json_numeric_check),转换后:
{ username: lili, passowrd: 123456, age: 25, card_no: 4.4090119770919e+17, balance: 20}
我希望的是:card_no 和 balance 都要完整显示,而不是被截取了(比如,它们可以保持为字符串这样),但是像 password 这些数字字段依然会被转换为数字显示(双引号去掉)。目前有没有比较好的解决办法??
如下是我希望的结果:
{ username: lili, passowrd: 123456, age: 25, card_no: 440901197709194316, balance: 20.00}
谢谢~~!!
其实 你的
model提交回服务器 不管post fromdata或者json什么方式 都变成了字符串
一般我都每个model对应一个format方法 手工转换为我自己一开始设置的格式~
设置pdo$pdo->setattribute(pdo::attr_emulate_prepares, false);