如何将双引号放在php的ajax JSON响应中的字符串中?
我在来自服务器的Ajax请求中收到JSON响应。这样它的工作原理:
{ “a” : “1”, “b” : “hello 'kitty'” }
但是我没有成功地在kitty周围加上双引号。
当我在Ajax响应中将“”转换为\x22时,它仍然被JavaScript解释为“,我无法解析JSON。
我是否也应该转义 \并在以后取消转义(这是可能的)?
如何做到这一点?
编辑:我不确定我是否表达得很好:我希望这个字符串在解析后的“b”中:
你好“小猫”
如有必要,我还可以在解析后添加一个额外的步骤来转换“b”,但我想没有必要,有一种更优雅的方式,所以这会自动发生?
编辑2:ajax 页面由 php 生成。我现在尝试了几种方法来创建b的值,所有这些都导致页面上的JSON解析错误:
$b = 'hello "kitty"';
// no 1:
//$b = str_replace('"',"\x22",$b);
// or no 2:
// $b = addslashes($b);
// or no 3:
$b = str_replace('"','\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';
编辑3:此解决方案最终有效:
$b = 'hello "kitty"';
$b = str_replace('"','\\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';