gpt4 book ai didi

javascript - JSON.parse 返回字符串而不是数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:44 25 4
gpt4 key购买 nike

我有一个 javascript 数组,我正在对其进行字符串化以便将其存储在本地存储中

console.log(request.keywords.length);
localStorage.keywords = JSON.stringify(request.keywords);

其中关键字是 javascript 数组。这里 request.keywords.length 返回 12,这是数组中元素的数量。

在检索它并将其解析回 JSON 之后

 var keywords = chrome.extension.getBackgroundPage().getItem("keywords");
var kjos=JSON.parse(keywords);
console.log(kjos.length);

返回的长度是342,也就是整个字符串的长度。我尝试通过 constructor.name 属性获取对象类型,它给了我 string 而不是 Array

知道哪里出了问题吗?

片段:
背景.html

 function getItem(key) {
var value;
log('Get Item:' + key);
try {
value = window.localStorage.getItem(key);
}catch(e) {
log("Error inside getItem() for key:" + key);
log(e);
value = "null";
}
log("Returning value: " + value);
return value;
}

/////

chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
localStorage.keywords = JSON.stringify(request.keywords);
}
);

////////////Popup.js

var keywords = chrome.extension.getBackgroundPage().getItem("keywords");

var kjos=JSON.parse(keywords); //kjos is a string variable

/////关键字.js

//keywordsArray is an Array object
// Message passing to background page
chrome.extension.sendRequest({message: "setKeywords", keywords: keywordsArray}, function()
{
console.log(keywordsArray);
console.log("message sent");
// The data has been sent, we can close the window now.
//window.close();
});

最佳答案

您需要像这样使用请求 - chrome.extension.sendRequest({message: "setKeywords"...,但用于 getKeywords 操作。函数 getItem 不能用于访问后台页面的变量。

关于javascript - JSON.parse 返回字符串而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436216/

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