一尘不染

为什么json_decode对我不起作用?

json

我在这里有点困惑。如果我将变量传递给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);

你怎么说,它向我展示了正确解码的数组。字符串绝对相同,我什至保留转义字符。也许是问题所在?


阅读 331

收藏
2020-07-27

共1个答案

一尘不染

看起来您的服务器已magic_quotes_gpc启用。无论是将其禁用或运行$stringJSON通过stripslashes()使用它之前。

$stringJSON = get_magic_quotes_gpc() ?
    stripslashes($_GET['jsonstring']) : $_GET['jsonstring'];
2020-07-27