我有非常简单的代码(可在上面查看):
<?php
$js = json_encode( "HO" );
var_dump( $js );
?>
它返回一个带有额外引号的字符串:
string(4)“”HO“”
知道为什么会这样吗?
答案 0 :(得分:5)
因为你是var_dump'ing。它将它包含在引号中。如果你没有var_dump和echo,你会看到实际的字符串。
在这里,看一下:
http://codepad.viper-7.com/KB5Fkk
<?php
$js = json_encode( '{ book : "how to use json", author: "some clever guy" }' );
var_dump( $js );
echo "<br /> The actual string:<br />";
echo $js;
?>
string(61) ""{ book : \"how to use json\", author: \"some clever guy\" }""
The actual string:
"{ book : \"how to use json\", author: \"some clever guy\" }"
答案 1 :(得分:2)
答案 2 :(得分:1)
如果你这样做:
$json = json_encode("HO");
echo $json;
它将返回以下内容:
"HO"
您的代码返回类似内容的原因:
string(4) ""HO""
是您使用的var_dump()
,不能作为echo
的替代品进行处理(请参阅var_dump() documentation)。
答案 3 :(得分:0)
因为字符串的JSON表示用引号括起来。您编码了一个字符串,这就是它在JSON中的表示方式。