решение, которое действительно работает, это:
$str = preg_replace('/\\\"/',"\"", $str);
Однако вы должны быть здесь очень осторожны, потому что вам нужно убедиться, что все ваши значения не имеют своих кавычек (что в общем случае верно, но особенно теперь, когда вы удалите все выходы из идиотского PHP (и дисфункционального) ) «вспомогательная» функция добавления ненужных обратных слешей перед всеми вашими объектными идентификаторами и значениями).
Итак, php по умолчанию удваивает экранирование ваших значений, в которых есть кавычка, поэтому, если у вас есть значение My name is "Joe"
в вашей БД, php вернет это как
My name is \\"Joe\\"
.
Это может или не может быть полезно для вас. Если это не так, вы можете сделать дополнительный шаг, чтобы заменить начальный слеш там следующим образом:
$str = preg_replace('/\\\\\"/',"\"", $str);
да ... это уродливо ... но это работает.
Затем вы остаетесь с чем-то, что смутно напоминает настоящий JSON.