我在这里有点困惑。如果我将变量传递给json_decode,它将不起作用:
$stringJSON = $_GET['jsonstring']; echo $stringJSON; $stringObject = json_decode($stringJSON); var_export($stringObject);
第一个回显正确显示了我传递的JSON字符串,例如
{\"Items\":[{\"Name\":\"name\",\"Description\":\"\"],\"Name\":\"Christmas\"}
第二个回显显示NULL。因此,我从第一个回显中获取了字符串,并编写了以下代码:
$stringObject = json_decode("{\"Items\":[{\"Name\":\"name\",\"Description\":\"\"],\"Name\":\"Christmas\"}"); var_export ($stringObject);
你怎么说,它向我展示了正确解码的数组。字符串绝对相同,我什至保留转义字符。也许是问题所在?
看起来您的服务器已magic_quotes_gpc启用。无论是将其禁用或运行$stringJSON通过stripslashes()使用它之前。
magic_quotes_gpc
$stringJSON
stripslashes()
$stringJSON = get_magic_quotes_gpc() ? stripslashes($_GET['jsonstring']) : $_GET['jsonstring'];