【发布时间】:2013-07-23 09:30:35
【问题描述】:
我通过 POST 传递参数并且参数是 JSON 编码的。后来我捕获参数并在PHP文件中对其进行解码,如下所示:
$entityBody = file_get_contents('php://input');
$entityBody = json_decode($entityBody, true);
但问题是它仅在键在双引号中时才有效,如下所示:
{
"id": "5",
"name": "abcd",
"imei": "1234"
}
当键在单引号中时,像上面的代码一样不起作用。
{
'id': "5",
'name': "abcd",
'imei': "1234"
}
我是 Json 和 PHP 的新手。因此,如果有人告诉我如何处理所有此类案件,我将不胜感激。
【问题讨论】:
-
您可以在运行json_decode之前运行过滤器将
'更改为",或者您可以确保源数据正确发送 -
AFAIK 单引号不是有效的 JSON,所以修复发布数据的代码。
-
对不起,我不明白。可以举个例子吗?
-
@DevZer0:这很难。如果字符串值中某处有单引号怎么办?还是键中的转义单引号?
-
您显示的不是有效的 JSON。不允许用单引号括住字符串。