有关json_encode函数中的JSON_NUMERIC_CHECK参数的困惑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了有关json_encode函数中的JSON_NUMERIC_CHECK参数的困惑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2196字,纯文字阅读大概需要4分钟。
内容图文
![有关json_encode函数中的JSON_NUMERIC_CHECK参数的困惑](/upload/InfoBanner/zyjiaocheng/240/2275fbaa77ae4db1a4251c47e69bbe6b.jpg)
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);
内容总结
以上是互联网集市为您收集整理的有关json_encode函数中的JSON_NUMERIC_CHECK参数的困惑全部内容,希望文章能够帮你解决有关json_encode函数中的JSON_NUMERIC_CHECK参数的困惑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。