我正在寻找一种从节点 js 模仿 php 的 json_encode 行为的方法。下面是一个示例,展示了 php 对获取 json_encoded 的对象中的 url 所做的事情:
<?
$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 尽职尽责地正确转义了反斜杠,所以我最终得到了 \\/ 而不是我想要的 \/ 。