2009-12-03 2 views
2

Есть ли кто-нибудь вокруг this bug?json_encode url fail

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

Я использую Zend_Json and Zend_Json_Expr, так что я могу получить даже обратного вызова функции внутри моего объекта JS - но я не могу получить URL, чтобы выйти в удобном формате!

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

производит:

{"url":/foo/bar} 

, который, очевидно, не прав либо ..

Есть в любом случае, чтобы получить:

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

без необходимости делать что-нибудь смешное, как найти способ его повторного выражения перед отправкой его на stdio?

ответ

7

{"url":"\/foo\/bar"} на самом деле полностью действительный и правильный JSON для «/ foo/bar». Попробуйте декодировать это значение, используя json_decode() или Zend_Json::decode(), и он должен правильно выводить исходный URL.

+0

Да, это правильно JSON, а также при дальнейших исследованиях window.location = 'http: \/\/www.google.com \ /'; кажется, работает .. похоже, что это как ошибка в плагине, я использую: -p –

+0

И, используя _Expr, по сути, просто говорит кодеру, чтобы он не помещал его в кавычки или избегал значения, как Zend_Db_Expr. – Justin