无法解码php中的JSON字符串

时间:2010-08-27 16:49:24

标签: php json

我有以下JSON字符串,我尝试使用php json_decode但$ postarray进行解码 总是为NULL,无法解决为什么会这样?

在Debian 5.0 Linux上运行 php Client API version => 5.0.51a Json版本1.2.1

 $json = '{\"json\":[{\"username\":\"1062576\",\"accountId\":\"45656565\"}]}';

 $postarray = json_decode($json);
 print_r($postarray);

由于

4 个答案:

答案 0 :(得分:10)

在字符串中转义双引号(\")的原因是字符串是双引号。

由于你要转义双引号,你应该双引号(而非单引号)引用你的字符串,如下所示:

<?php
 $json = "{\"json\":[{\"username\":\"1062576\",\"accountId\":\"45656565\"}]}";

 $postarray = json_decode($json);
 print_r($postarray);
?>

Live Example

如果你想单引号字符串,那么don't escape the double quotes或使用像Andrei建议的stripslashes()

您可以阅读the four ways to specify a string in PHP, and the differences among them, here

答案 1 :(得分:7)

试试这个:

<?php
$json = stripslashes('{\"json\":[{\"username\":\"1062576\",\"accountId\":\"45656565\"}]}');

$postarray = json_decode($json);
print_r($postarray);

答案 2 :(得分:2)

你应该用双引号括起来。

答案 3 :(得分:1)

不会解析字符串,因为它用单引号括起来,所以反斜杠是文字的。如果你删除它们,使用stripslashes,或用双引号将字符串括起来,你应该没有问题。