Recibo una respuesta JSON en una solicitud de Ajax del servidor. De esta manera funciona:¿Cómo puedo poner comillas dobles dentro de una cadena dentro de una respuesta JSON ajax de php?
{ "a": "1", "b": "hola 'gatito'"}
Pero no tuve éxito en poner comillas dobles gatito.
Cuando convierto "a \ x22 en la respuesta de Ajax, todavía se interpreta como" por JavaScript y no puedo analizar el JSON.
¿Debo también escapar el \ y deshacerme del paisaje más tarde (lo cual sería posible)?
¿Cómo hacer esto?
Editar: No estoy seguro de si me lo expresó bien: Quiero que esta cadena dentro de la "b" después el análisis sintáctico:
hola "gatito"
Si es necesario también pude agrega un paso adicional después del análisis para convertir "b", pero supongo que no es necesario, ¿hay una manera más elegante para que esto suceda automáticamente?
Edit2: La página de ajax es generada por php. He intentado varias cosas ahora para crear el valor de b, todo el resultado en error de análisis JSON en la página:
$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: Esta solución finalmente funciona:
$b = 'hello "kitty"';
$b = str_replace('"','\\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';
'\" 'está bien y' \ u0022' está bien, pero '\ x22', aunque es válido en un literal de cadena de JavaScript, no está permitido en JSON. – bobince