Как я могу эмулировать php json_encode в javascript / node js, используя JSON.stringify? - PullRequest
0 голосов
/ 02 сентября 2011

Я ищу способ имитации поведения php json_encode с узла js. Вот пример, показывающий, что делает php с URL, который находится в объекте, который получает json_encoded:

<?
$foo['url'] = "http://example.com/note/that/the/slashes/get/backslashed";
echo json_encode($foo);
?>

генерирует следующий вывод:

{"url":"http:\/\/example.com\/note\/that\/the\/slashes\/get\/backslashed"}

Здесь можно использовать node.js и функцию JSON.stringify:

var foo = new Object();
foo.url = "http://example.com/note/that/the/slashes/do/not/get/backslashed"
console.log(JSON.stringify(foo));

Я наблюдаю этот вывод вместо:

 {"url":"http://example.com/note/that/the/slashes/do/not/get/backslashed"}

Вам известен чистый способ заставить JSON.stringify вести себя так же, как PHP?

Дополнительная информация: я понимаю, что эти косые черты, возможно, не требуются для правильного кодирования json, но я отправляю объекты в кодировке json на удаленный сервер, который я не могу контролировать и не люблю их без обратной косой черты.

Дополнительная информация: И я попытался вставить свои собственные обратные слэши и затем вызвать JSON.stringify, но JSON.stringify должным образом экранирует обратные слэши, так что в итоге я получил \\ / вместо \ /, что я и хотел.

1 Ответ

5 голосов
/ 02 сентября 2011

Если это только косые черты, вы можете заменить / на \/ после преобразования.

...