2010-03-11 16 views
9

Tengo una cadena json guardada en mi db. Cuando lo recupero de db para pasarlo a la función javascript (llamada ajax), junto con el id de esa fila, estoy json_encoding both (la matriz de resultados de la consulta) y pasándola a js. pero json_encode está agregando barras no deseadas a mi cadena ya json. cómo escapar de eso Recuerdo que tengo que pasar la identificación también como segundo elemento en la matriz.json_encode agregar barras no deseadas

mi cadena JSON en dB es como:

{"field":"City","term":"Hawaiian Gardens, CA"} 

y la identificación es decir 5.

por lo que el conjunto de resultados de consulta en PHP es:

$savedVal['id'] = 5 
$savedVal['object_str'] = {"field":"City","term":"Hawaiian Gardens, CA"} 

así que después de json_encode ($ savedVal) idealmente debería ser:

{"id":"5","object_str":{"field":"City","term":"Hawaiian Gardens, CA"}} 

pero json_encoding la matriz me da:

{"id":"5","object_str":"{\"field\":\"City\",\"term\":\"Hawaiian Gardens, CA\"}} 

barras adicionales y cita demasiado alrededor object_str valor. Por favor, ayúdenme.

Gracias.

Respuesta

18

Está ejecutando JSON_encode en JSON: esta es la razón por la que se produce el doble escape. Prueba esto:

$savedVal['id'] = 5 ; 
$savedVal['object_str'] = json_decode('{"field":"City","term":"Hawaiian Gardens, CA"}'); 

echo json_encode($savedVal); 

salida

{"id":5,"object_str":{"field":"City","term":"Hawaiian Gardens, CA"}} 
+0

Gracias. ¡¡¡¡Funciona!!!! – Prashant

Cuestiones relacionadas