Как убрать \"
Строка (JSON): {"title":"\"Copper\""}
я пытался
$output = str_replace('\\"', "", $output);
но я получил
{"title":"" Copper""}
Что я ожидаю
{"title":"Copper"}
2 ответа
Вы генерируете строку JSON со своим собственным кодом (в отличие от стороннего)? Если это так, опубликуйте код, который генерирует строку JSON, и подробно опишите, что вы сделали на этом этапе, чтобы попытаться решить проблему.
Если у вас нет контроля над строкой JSON (и / или создатель строки JSON не / не может исправить это), то хакерский способ исправить это будет:
$output = str_replace( '\"' , '' , $output );
Ваш пример кода неполон, потому что то, что вы дали, работает:
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
или регулярные выражения могут работать для простых случаев, но как только вы получаете неожиданные данные, они могут пойти ужасно неправильно.