字符串(JSON):{"title":"\"Copper\""}
我试过了
$output = str_replace('\\"', "", $output);
但我得到了
{"title":"" Copper""}
我的期望
{"title":"Copper"}
字符串(JSON):{"title":"\"Copper\""}
我试过了
$output = str_replace('\\"', "", $output);
但我得到了
{"title":"" Copper""}
我的期望
{"title":"Copper"}
您的示例代码不完整,因为您提供的内容确实有效:
php > $s='{"title":"\"Copper\""}';
php > echo $s;
{"title":"\"Copper\""}
php > echo str_replace('\\"',"",$s);
{"title":"Copper"}
(即来自php -a
交互式会话)
换句话说,您的输入数据不是您认为的那样。
顺便说一句,正如其他人所说,最好json_decode
在 JSON 上使用。然后只对感兴趣的字段进行字符串操作。然后使用json_encode
将其转回 JSON。使用str_replace
or 正则表达式可能适用于简单的情况,但一旦你得到意外的数据,它可能会出现可怕的错误。
您是否使用自己的代码生成 JSON 字符串(而不是从第三方获取)?如果是这样,请发布生成 JSON 字符串的代码并详细说明您为尝试解决问题所做的工作。
如果您无法控制 JSON 字符串(和/或 JSON 字符串的创建者不会/无法修复它),那么修复它的一个 hacky 方法是:
$output = str_replace( '\"' , '' , $output );