为什么json_decode对我不起作用?

tar*_*lex 12 php json

我在这里有点困惑.如果我将变量传递给json_decode,它不起作用:

$stringJSON = $_GET['jsonstring'];  
echo $stringJSON;
$stringObject = json_decode($stringJSON);
var_export($stringObject);
Run Code Online (Sandbox Code Playgroud)

第一个回显正确地向我显示了我传递的JSON字符串,例如

{\"Items\":[{\"Name\":\"name\",\"Description\":\"\"],\"Name\":\"Christmas\"}
Run Code Online (Sandbox Code Playgroud)

第二个回显显示NULL.所以我从第一个echo中获取字符串并编写以下代码:

$stringObject = json_decode("{\"Items\":[{\"Name\":\"name\",\"Description\":\"\"],\"Name\":\"Christmas\"}");
var_export ($stringObject);
Run Code Online (Sandbox Code Playgroud)

那你怎么说,它向我展示了正确解码的数组.字符串绝对相同,我甚至保留了转义字符.或者也许他们是问题?

Phi*_*hil 25

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

$stringJSON = get_magic_quotes_gpc() ?
    stripslashes($_GET['jsonstring']) : $_GET['jsonstring'];
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 5

这个

[{\"Name\":\"name\",\"Description\":\"\"]
Run Code Online (Sandbox Code Playgroud)

需要是

[{\"Name\":\"name\",\"Description\":\"\"}]
Run Code Online (Sandbox Code Playgroud)

你错过了收盘 }