Php – json_encode url fail

jsonphpzend-framework

Has anyone way around this bug?

echo json_encode(array('url'=>'/foo/bar'));
{"url":"\/foo\/bar"}

I use Zend_Json and Zend_Json_Expr so I can get even callback functions inside my js object — but I can't get a url to come out in a usable format!

echo Zend_Json::encode(array(
                         'url'=>new Zend_Json_Expr('/foo/bar'),
                       ), false,
                       array(
                         'enableJsonExprFinder' => true),
                       ));

produces:

{"url":/foo/bar}

which obviously isn't right either..

Is there anyway to get:

{"url":"/foo/bar"}

without having to do anything ridiculous like find a way to regex it out before sending it to stdio?

Best Solution

{"url":"\/foo\/bar"} is actually completely valid and correct JSON for "/foo/bar". Try decoding that value using json_decode() or Zend_Json::decode() and it should output your original URL correctly.

Related Question