How can I put double quotes inside a string within an ajax JSON response from php?

Posted by karlthorwald on Stack Overflow See other posts from Stack Overflow or by karlthorwald
Published on 2010-04-28T19:06:45Z Indexed on 2010/04/28 19:37 UTC
Read the original article Hit count: 343

Filed under:
|
|
|
|

I receive a JSON response in an Ajax request from the server. This way it works:

{ "a" = "1", "b" = "hello 'kitty'" }

But I did not succeed in putting double quotes around kitty.

When I convert " to \x22 in the Ajax response, it is still interpreted as " by JavaScript and I cannot parse the JSON.

Should I also escape the \ and unescape later (which would be possible)?

How to do this?

Edit: I am not sure if i expressed it well: I want this string inside of "b" after the parse:

hello "kitty"

If necessary I could also add an additional step after the parse to convert "b", but I guess it is not necessary, there is a more elegant way so this happens automatically?

Edit2: The ajax page is generated by php. I tried several things now to create the value of b, all result in JSON parse error on the page:

  $b = 'hello "kitty"';      

  // no 1:
  //$b = str_replace('"',"\x22",$b);

  // or no 2:
  // $b = addslashes($b);  

  // or no 3: 
  //$b = str_replace('"','\"',$b);

  // or no 4: 
  $b = str_replace('"','\\"',$b);

  echo '"b" : "' . $b . '"';

© Stack Overflow or respective owner

Related posts about JSON

Related posts about json-decode