该值包括反斜杠和斜杠,我想保留格式
$ cat a.json
{
"name": "url",
"value": "https:\/\/www.example.com"
}
但是导出其值时,反斜杠不见了。
$ cat a.js
var fs = require("fs");
var content = fs.readFileSync("a.json");
var json = JSON.parse(content);
console.log(json)
fs.writeFile("output", json.value, function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
这是测试结果
$ node a.js
{ name: 'url', value: 'https://www.example.com' }
The file was saved!
$ cat output
https://www.example.com
我还是要将原始值保存到文件
https:\/\/www.example.com
该怎么做?
答案 0 :(得分:0)
反斜杠用作escape character.。例如,反斜杠后跟'n'将导致字符串在该点处换行。有关其他示例,请参见链接。当反斜杠后跟没有特殊格式的字符时,它将仅保留第二个字符,反斜杠将不保留
"\/" => "/"
您想要的是双反斜杠“ \”,第一个反斜杠将被视为转义符,第二个反斜杠将表示您希望将反斜杠保留在最终字符串中。
https:\\/\\/www.example.com
答案 1 :(得分:0)
该值首先不包含\
字符作为数据。那是一个逃脱角色。
在JSON中,/
前面可以有转义符,但不一定要这样。
因此在JSON中,"\/"
和"/"
是完全等效的。
在URL中,它们不是等效的。
如果您想在URL中加入\
(您不应该,因为它会使其成为无效的URL),那么您就需要转义{{1 }}中的原始JSON:
\
您也可以继续转义{
"name": "url",
"value": "https:\\/\\/www.example.com"
}
,但是如上所述,这毫无意义:
/