解码带有两个点的数字时,json_decode无效

时间:2016-09-15 06:42:53

标签: php json

我有json_decode函数的问题 - 当我尝试解码json-string

{"amount": 132..45}

我没有收到任何错误,我有阵列

[
'amount => 132
]

但它没有预期的结果 - 我希望收到错误。 任何人都可以帮助我,我的json_decode出了什么问题?

1 个答案:

答案 0 :(得分:1)

这是无效的JSON。如果json_decode将值截断为123而不是指示错误(通过返回NULL),则json_decode中存在错误 - 我建议将其报告为一个错误。我在json_decode页面上看不到任何选项,告诉它“严格”或其他什么。

请参阅the json site上的数字定义:

enter image description here

只允许一个.

因此,此处的修复是修复无效JSON的源,以便生成有效的JSON。

如果这是123.45,那应该是:

{"amount": 123.45}

如果它是一个带有两个点的字符串,它应该有引号:

{"amount": "123..45"}