gpt4 book ai didi

javascript - 解析错误 JSON.parse(意外的标记 u)

转载 作者:行者123 更新时间:2023-12-03 07:27:42 24 4
gpt4 key购买 nike

var storage = chrome.storage.local;
var cachedStorage = {};

这是 js 文件。它显示了意外的标记 u。即使我已经正确完成了解析。并且它还显示了其 html 源页面的意外标记。任何人都可以建议我如何解决这个问题。

<小时/>
var defaultStorage = [{
savedPatterns: JSON.stringify([
[{
"en": "English"
}, {
"it": "Italian"
}, "25", true],
[{
"en": "English"
}, {
"la": "Latin"
}, "15", false]
]),

}];

error occurs here unexpected token u

function createPattern() {
console.log('createPattern begin');
var patterns = JSON.parse(S('savedPatterns'));
var srce = [],
trg = [],
prb = [];
console.log(S('savedPatterns'));
console.debug(S('savedPatterns'));
var translator = document.getElementById('translatorService');
var service = translator.children[translator.selectedIndex].value;
srce[0] = document.getElementById('sourceLanguage');
srce[1] = srce[0].children[srce[0].selectedIndex].value;
srce[2] = srce[0].children[srce[0].selectedIndex].text;
trg[0] = document.getElementById('targetLanguage');
trg[1] = trg[0].children[trg[0].selectedIndex].value;
trg[2] = trg[0].children[trg[0].selectedIndex].text;
prb[0] = document.getElementById('translationProbability');
prb[1] = prb[0].children[prb[0].selectedIndex].value;

patterns.push([
[srce[1], srce[2]],
[trg[1], trg[2]],
prb[1],
false,
service
]);
saveBulk({
'savedPatterns': JSON.stringify(patterns)
}, 'Saved Pattern');
console.log('createPattern end');
}

function S(key) {
return cachedStorage[key];
}

function loadStorageAndUpdate(callback) {
storage.get(null, function(data) {
console.log('data: ' + data + ' : ' + JSON.stringify(data));
var d = {};
if (!data || JSON.stringify(data) == '{}') { // in this case, storage was not initialized yet
console.log('setting storage to defaultStorage (stringified): ');
console.log(JSON.stringify(defaultStorage));
storage.set(defaultStorage);
d = defaultStorage;
} else {
d = data;
}

cachedStorage = d;
if (!!callback) {
callback(d);
}
});
}

最佳答案

JSON.parse 失败时,会出现

错误 意外的标记,并且根据字符(本例中为 u),您可以推测其原因。

  • u 表示值未定义
  • o 表示值是否为对象

try {
JSON.parse(undefined)
} catch (ex) {
document.write(ex.message + "<br/>")
}

try {
JSON.parse({})
} catch (ex) {
document.write(ex.message)
}

你可以尝试这样的事情:

function s(key) {
var obj = {
foo: "foo",
bar: "bar"
}
var v = null;

try {
v = JSON.parse(obj[key]);
} catch () {
v = obj[key];
}

return v;
}

function main() {
var v = s("foo");
}

请参阅以下帖子了解更多信息。 Uncaught SyntaxError: Unexpected token with JSON.parse

关于javascript - 解析错误 JSON.parse(意外的标记 u),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35933985/

24 4 0