Javascript &引用;密钥路径选项不是有效的密钥路径";尝试使用变量分配keyPath时
我有一些JSON,看起来像这样,它被声明为一个名为“JSONOBJSPER”的变量: 我正在尝试使用下面的“监视列表”代码为IndexedDB分配密钥路径:Javascript &引用;密钥路径选项不是有效的密钥路径";尝试使用变量分配keyPath时,javascript,json,indexeddb,Javascript,Json,Indexeddb,我有一些JSON,看起来像这样,它被声明为一个名为“JSONOBJSPER”的变量: 我正在尝试使用下面的“监视列表”代码为IndexedDB分配密钥路径: request.onupgradeneeded = function(event) { var db = event.target.result; var key = jsonObjSuper["Watchlist"] var objectStore = db.createObjectStore("instruments", { keyPa
request.onupgradeneeded = function(event) {
var db = event.target.result;
var key = jsonObjSuper["Watchlist"]
var objectStore = db.createObjectStore("instruments", { keyPath: key});
}
但当我尝试此操作时,会出现以下错误:
未捕获的DomeException:未能对“IDBDatabase”执行“createObjectStore”:keyPath选项不是有效的密钥路径
如果我在“key”变量上执行console.log,那么所得到的值就是预期的“我的观察列表”
我也尝试了JSON.stringify“key”变量,看看这是否有区别,但仍然得到了一个错误
是什么引起的
非常感谢您的代码:
var key = jsonObjSuper["Watchlist"]
var objectStore = db.createObjectStore("instruments", { keyPath: key});
以及数据定义:
jsonObjSuper = {
"Watchlist": "My Watchlist",
...
}
你实际上在做:
db.createObjectStore("instruments", { keyPath: "My Watchlist"});
“我的监视列表”
不是有效的密钥路径。对象存储的键路径必须是一个字符串,该字符串是有效的JS标识符或以点分隔的标识符序列或空字符串,或一个或多个前一个标识符的数组。(有关精确定义,请参阅。)因此“我的观察列表”
将有效,但“我的观察列表”
无效
db.createObjectStore("instruments", { keyPath: "My Watchlist"});