Estoy creando una cadena JSON desde una matriz PHP. Lo he codificado usando json_encode()
.PHP JSON String, escape Citas dobles para la salida JS
$data = array(
'title' => 'Example string\'s with "special" characters'
);
$data = json_encode($data);
$data
se localiza utilizando wp_localize_script()
y es accesible a través de un data
variable global.
En el archivo JS que puede acceder a la información por la siguiente:
var data = data.replace(/"/g, '"'),
jsonData = jQuery.parseJSON(data);
console.log(jsonData);
Esto se traduce en una producción de:
{ "title":"Example string's with "special" characters" }
Introducción que se traducen en http://jsonlint.com/ devuelve un error. Al eliminar las comillas dobles alrededor de "especial", se valida la cadena.
¿Cuál es la mejor manera de crear una cadena JSON desde PHP y escaparla adecuadamente para usarla en un archivo JS?
¿No puede esperar que json_encode produzca un json válido? No contrataría a este desarrollador –
@Joti Debe ser nuevo en PHP y luego: P –
esta respuesta, aunque se ha marcado como aceptada, no responde la pregunta. OP pregunta: ¿cuál es la mejor manera de crear una cadena JSON desde PHP y escaparla adecuadamente para usarla en un archivo JS?Esta respuesta dice que debes escaparte, pero no proporciona la mejor manera de hacerlo. – Alex