Firefox 插件 webextensionsJSON.parse:在 JSON 数据第 61 行第 2 列的对象中的



我正在移植一个Google Chrome扩展程序,成为一个Firefox插件。我最终让它成为一个临时附加组件,但它需要一个 ID 让我将其存档(这就是我想做的)。我克服了所有这些,但现在我在关闭清单.json 时遇到了问题。当我尝试关闭 json 时,Firefox 给了我标题中看到的错误。

尝试了许多不同形式的括号关闭,例如:

]
}
]}
}

等等。

],
"permissions": [
"storage",
"*://www.crunchyroll.com/*",
"*://*.vrv.co/*",
"*://*.dlvr1.net/*",
"*://*.akamaized.net/*"
]
}

正如标题中所述,我在右括号中遇到了错误。请原谅我,如果这是一件非常愚蠢的事情,我用Lua编程,Web开发不是我的事。这个代码块应该是重现问题所需要的,但我又是一个新手,所以如果需要更多,请告诉我。我也是堆栈溢出的新手,所以我想按照要求将其保持在最低限度。

它应该能够加载到Firefox上,但它给了我标题中看到的错误消息。

整个 json 文件在这里:

{ "browser_specific_settings": {
"gecko": {
"id": "ihegfgnkffeibpmnajnoiemkcmlbmhmi",
"strict_min_version": "42.0",
"strict_max_version": "*",
"manifest_version": 2,
"name": "Crunchyroll HTML5",
"version": "0.14.4",
"description": "A fully fledged HTML5 player for Crunchyroll.",
"author": "Jeppe Rune Mortensen <jepperm@gmail.com>",
"icons": {
"16": "assets/icon16.png",
"32": "assets/icon32.png",
"48": "assets/icon48.png",
"64": "assets/icon64.png",
"96": "assets/icon96.png",
"128": "assets/icon128.png"
},
"background": {
"scripts": [
"vendor/browser-polyfill.min.js",
"background.js"
]
},
"content_scripts": [
{
"matches": [
"*://www.crunchyroll.com/*"
],
"js": [
"vendor/browser-polyfill.min.js",
"patch.js",
"content-script.js"
],
"run_at": "document_start"
},
{
"all_frames": true,
"matches": [
"*://www.crunchyroll.com/affiliate_iframeplayer*"
],
"js": [
"vendor/browser-polyfill.min.js",
"patch-worker.firefox.js",
"content-script.js"
]
}
],
"web_accessible_resources": [
"vendor/JavascriptSubtitlesOctopus/*",
"fonts/*"
],
"permissions": [
"storage",
"*://www.crunchyroll.com/*",
"*://*.vrv.co/*",
"*://*.dlvr1.net/*",
"*://*.akamaized.net/*"
]
}

您应该在此处查看 manifest.json 的规范: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json

我建议使用 JSON 编辑工具(例如 https://jsoneditoronline.org/)来构建您的 JSON,这样您就不会忘记添加正确的括号对......

现在我看到了整个文件,似乎缺少"壁虎":对象的 } 和"browser_specific_settings"的 }:

这是所有括号匹配的文件。

{ "browser_specific_settings": {
"gecko": {
"id": "ihegfgnkffeibpmnajnoiemkcmlbmhmi",
"strict_min_version": "42.0",
"strict_max_version": "*"
}
},
"manifest_version": 2,
"name": "Crunchyroll HTML5",
"version": "0.14.4",
"description": "A fully fledged HTML5 player for Crunchyroll.",
"author": "Jeppe Rune Mortensen <jepperm@gmail.com>",
"icons": {
"16": "assets/icon16.png",
"32": "assets/icon32.png",
"48": "assets/icon48.png",
"64": "assets/icon64.png",
"96": "assets/icon96.png",
"128": "assets/icon128.png"
},
"background": {
"scripts": [
"vendor/browser-polyfill.min.js",
"background.js"
]
},
"content_scripts": [
{
"matches": [
"*://www.crunchyroll.com/*"
],
"js": [
"vendor/browser-polyfill.min.js",
"patch.js",
"content-script.js"
],
"run_at": "document_start"
},
{
"all_frames": true,
"matches": [
"*://www.crunchyroll.com/affiliate_iframeplayer*"
],
"js": [
"vendor/browser-polyfill.min.js",
"patch-worker.firefox.js",
"content-script.js"
]
}
],
"web_accessible_resources": [
"vendor/JavascriptSubtitlesOctopus/*",
"fonts/*"
],
"permissions": [
"storage",
"*://www.crunchyroll.com/*",
"*://*.vrv.co/*",
"*://*.dlvr1.net/*",
"*://*.akamaized.net/*"
]
}

编辑:请使用另一个答案。我误读了规格。

编辑 - 现在提供了 JSON 的更好答案

这是由我在下面链接的解析器验证的工作 JSON:

{ "browser_specific_settings": {
"gecko": {
"id": "ihegfgnkffeibpmnajnoiemkcmlbmhmi",
"strict_min_version": "42.0",
"strict_max_version": "*",
"manifest_version": 2,
"name": "Crunchyroll HTML5",
"version": "0.14.4",
"description": "A fully fledged HTML5 player for Crunchyroll.",
"author": "Jeppe Rune Mortensen <jepperm@gmail.com>",
"icons": {
"16": "assets/icon16.png",
"32": "assets/icon32.png",
"48": "assets/icon48.png",
"64": "assets/icon64.png",
"96": "assets/icon96.png",
"128": "assets/icon128.png"
},
"background": {
"scripts": [
"vendor/browser-polyfill.min.js",
"background.js"
]
},
"content_scripts": [
{
"matches": [
"*://www.crunchyroll.com/*"
],
"js": [
"vendor/browser-polyfill.min.js",
"patch.js",
"content-script.js"
],
"run_at": "document_start"
},
{
"all_frames": true,
"matches": [
"*://www.crunchyroll.com/affiliate_iframeplayer*"
],
"js": [
"vendor/browser-polyfill.min.js",
"patch-worker.firefox.js",
"content-script.js"
]
}
],
"web_accessible_resources": [
"vendor/JavascriptSubtitlesOctopus/*",
"fonts/*"
],
"permissions": [
"storage",
"*://www.crunchyroll.com/*",
"*://*.vrv.co/*",
"*://*.dlvr1.net/*",
"*://*.akamaized.net/*"
]
}
}
}

从根本上说,您的问题归结为不一致的缩进,因此很难说出问题出在哪里。实际问题是您在文件末尾缺少 2 个额外的右大括号}。您可以使用我在下面原始答案中链接的解析器来尝试帮助您调试这些问题。

提供完整 JSON 之前的原始答案

如果您输入您提供给本网站的最后一段代码,您可以查看它是否有效: http://json.parser.online.fr/剧透:它说它是。这应该是你的第一个线索,事实上,问题不在于你目前认为的最后一块。作为参考,这是我复制到该解析器中的内容:

{
"permissions": [
"storage",
"*://www.crunchyroll.com/*",
"*://*.vrv.co/*",
"*://*.dlvr1.net/*",
"*://*.akamaized.net/*"
]
}

根据您复制的内容判断,因为您没有向我们提供完整的 JSON 文件,我相信您在本节上方的某个地方}包含一个额外的右括号。这是因为如果您注意已复制内容的缩进:

],
"permissions": [
"storage",
"*://www.crunchyroll.com/*",
"*://*.vrv.co/*",
"*://*.dlvr1.net/*",
"*://*.akamaized.net/*"
]
}

结束列表方括号]与结束对象大括号}具有相同的缩进。当然,这可能是您如何将代码复制到 StackOverflow 中的问题,但由于您没有向我们提供文件的其余部分,我没有任何其他线索可以参考。

相关内容

最新更新