views:

177

answers:

1

Hello all I have a json string saved in my db. When i retrieve it from db to pass it to the javascript function (ajax call) , along with the id of that row, i am json_encoding both (the query result array) and passing it to js. but json_encode is adding unwanted slashes to my already json string. how to escape it. remember i have to pass the id also as second element in array.

my json string in db is like:

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

and the id is say 5.

so the query result array in PHP is:

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

so after json_encode($savedVal) ideally it should be:

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

but json_encoding the array gives me:

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

extra slashes and quotes too around object_str value. Please help me.

Thank you.

+3  A: 

You are running JSON_encode on JSON - this is why the double escaping occurs. Try this:

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

echo json_encode( $savedVal );

Output

{"id":5,"object_str":{"field":"City","term":"Hawaiian Gardens, CA"}}
Andy
Thanks. It works!!!!
Prashant