Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.7k views
in Technique[技术] by (71.8m points)

php - Why json_decode doesn't work for me?

I'm a little confused here. if I pass a variable to json_decode, it doesn't work:

$stringJSON = $_GET['jsonstring'];  
echo $stringJSON;
$stringObject = json_decode($stringJSON);
var_export($stringObject);

The first echo correctly shows me the JSON string I passed, e.g.

{"Items":[{"Name":"name","Description":""],"Name":"Christmas"}

The second echo shows NULL. So I grab the string from the first echo and write the following code:

$stringObject = json_decode("{"Items":[{"Name":"name","Description":""],"Name":"Christmas"}");
var_export ($stringObject);

And what do you say, it shows me the correctly decoded array. The string is absolutely the same, I even kept the escape characters. Or maybe they are the problem?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Looks like your server has magic_quotes_gpc enabled. Either disable it or run $stringJSON through stripslashes() before using it.

$stringJSON = get_magic_quotes_gpc() ?
    stripslashes($_GET['jsonstring']) : $_GET['jsonstring'];

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...