【发布时间】:2021-03-16 17:10:47
【问题描述】:
我正在尝试将 JS 代码的 sn-p 存储为 JSON,首先将 sn-p 存储在 JS 对象中,然后将该对象下载为 JSON 文件。我可以使用 encodeURI 对 JS 进行精细编码
例如:
encodeURI("var a = 100")
...它给出了一个很好的编码字符串:
"var%20a%20=%20100"
...可以像这样存储在 JS 对象中:
data = {
"code" : "var%20a%20=%20100"
}
但如果我将此对象下载为 JSON:
var link = document.createElement("a");
link.download = 'my_file.json';
link.href = "data:json," + JSON.stringify(data);
document.body.appendChild(link);
link.click();
...下载的文件打开时显示解码后的sn-p,导致JSON无效。
我使用 Chrome 作为浏览器。将 JS 对象下载为 JSON 文件时,浏览器会自动解码编码字符串吗?
【问题讨论】:
-
data:json,{\"code\":\"var%20a%20=%20100\"}也许也尝试编码JSON.stringify(data)?然后当它被浏览器解码时,“代码”仍然被编码。 -
我也试过了,还是这样。似乎保存的 sn-p 中的分号可能会导致问题。
-
尝试用 ****** 替换所有星号实例,但问题仍然存在。保存的 JSON 文件中有换行符导致问题。
标签: javascript json object browser