晚上好,
我试图将关联数组保存到chrome.storage.local中,如下所示:
var keyName = 'name';
var data = //grabbed from an Ajax call
saveData(keyName, data);
function saveData(keyName, data){
console.log("saving with key: "+keyName);
chrome.storage.local.set({keyName:data});
}
要检查以确保正确保存数据,我加载:
function loadData(keyName){
console.log("loading: "+keyName);
chrome.storage.local.get(keyName, function(result){
console.log(result);
});
}
日志显示它正在尝试加载正确的密钥名称,但没有任何内容出现。然后我尝试调用loadData(null),它将显示本地存储的全部内容,我发现:
Object {keyName: Array[3]}
keyName: Array[3]
__proto__: Object
我的数据!但它保存的关键是" keyName"而不是" name"。来自saveData的日志输出它是"保存时使用键''",但是它使用键" keyName"进行保存。代替...
????
谢谢!
答案 0 :(得分:3)
有多奇怪......
似乎我的问题类似于Using a variable key in chrome.storage.local.set
他们找到的答案是将JSON {keyName:data}转换为对象:
var obj = {};
obj[keyName] = data;
chrome.storage.local.set(obj);
这很有效。
这是因为JSON字段是否自动作为字符串传递?