我收到来自服务器的Ajax请求中的JSON响应。这样工作:
{“ a”:“ 1”,“ b”:“ hello’kitty’”}
但是我没有成功地在 kitty上加上 双引号。
当我在Ajax响应中将“转换为\ x22时,JavaScript仍将其解释为”,并且我无法解析JSON。
我是否还应该转义\并稍后转义(可能)?
这该怎么做?
编辑: 我不确定我是否表达得很好:解析 后 我想在“ b”内的此字符串:
凯蒂猫”
如果有必要,我还可以在解析后添加一个额外的步骤来转换“ b”,但是我想没有必要,有一种更优雅的方法,所以这种情况会自动发生吗?
Edit2: 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 . '"}';
Edit3: 此解决方案终于可以工作了:
$b = 'hello "kitty"';
$b = str_replace('"','\\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';