我有以下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);
由于
答案 0 :(得分:10)
在字符串中转义双引号(\"
)的原因是字符串是双引号。
由于你要转义双引号,你应该双引号(而非单引号)引用你的字符串,如下所示:
<?php
$json = "{\"json\":[{\"username\":\"1062576\",\"accountId\":\"45656565\"}]}";
$postarray = json_decode($json);
print_r($postarray);
?>
如果你想单引号字符串,那么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,或用双引号将字符串括起来,你应该没有问题。