我从服务器收到Ajax请求中的JSON响应.这种方式有效:
{"a":"1","b":"hello'kitty'"}
但我没有成功地在kitty周围加双引号.
当我在Ajax响应中将"转换为\ x22时,它仍被解释为"由JavaScript而我无法解析JSON.
我是否也应该逃避\和unescape以后(这是可能的)?
这该怎么做?
编辑:我不确定我是否表达得很好:我想在解析之后将这个字符串放在"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 . '"}';
Run Code Online (Sandbox Code Playgroud)
Edit3:这个解决方案最终有效:
$b = 'hello "kitty"';
$b = str_replace('"','\\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';
Run Code Online (Sandbox Code Playgroud) 我有一个字符串"aa :: bb :: aa"
并需要把它变成"aa,bb,aa"
我试过了
translate(string,':',', ')
Run Code Online (Sandbox Code Playgroud)
但这会返回"aa ,, bb ,, aa"
如何才能做到这一点.