gpt4 book ai didi

javascript - Firefox pref 正在破坏 JSON

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:52:22 26 4
gpt4 key购买 nike

我有以下 JSON:http://pastebin.com/Sh20StJY

SO 删除了我帖子中的字符,所以请查看真实 JSON 的链接

使用 JSON.stringify 生成并保存在 Firefox prefs (pref.setCharPref(prefName, value);)

问题是当我保存这个值时,Firefox 做了一些破坏 JSON 的事情。如果我尝试 JSON.parse 从配置中检索值,我会收到错误消息:

Error: JSON.parse: bad control character in string literal

If I try to validate the above JSON (从设置中检索)我在 第 20 行 收到错误, token 值包含两个无效字符。

如果我在 JSON.stringify 之后立即尝试 JSON.parse,则不会发生错误。

我是否必须设置一些内容以不同的编码保存?我该如何解决?

最佳答案

nsIPrefBranch.getCharPref() 仅适用于 ASCII 数据,但是您的 JSON 数据包含一些非 ASCII 字符。您可以在首选项中存储 Unicode 数据,它只是稍微复杂一点:

var str = Components.classes["@mozilla.org/supports-string;1"]
.createInstance(Components.interfaces.nsISupportsString);
str.data = value;
pref.setComplexValue(prefName, Components.interfaces.nsISupportsString, str);

并阅读该偏好:

var str = pref.getComplexValue(prefName, Components.interfaces.nsISupportsString);
var value = str.data;

供引用:Documentation

关于javascript - Firefox pref 正在破坏 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com