Манифест недействителен JSON. Строка: 1, столбец: 1, Неожиданный токен
продолжайте получать эту ошибку: "Манифест недействителен JSON. Линия: 1, столбец: 1, Неожиданный токен". Я не понимаю, в чем проблема с моим кодом? вот что я до сих пор:
{
"manifest_version": 2,
"name": "extension",
"version": "1.0",
"description": "My first Chrome extension.",
"browser_action": {
"default_icon": "icon.jpg",
"popup": "popup.html"
}
}
Ответы
Ответ 1
У меня были свойства файла manifest.json, заданные с помощью команды "Создать действие: нет" в Visual Studio 2010.
Изменение в Visual Studio на Content обеспечило передачу файла при развертывании.
Может быть, у вас похожая проблема.
редактировать
Учитывая мое отрицательное мнение, я подумал, что должен расширить и сказать, что моя точка зрения заключается в том, что, учитывая, что в строке 1, столбце 1 указан допустимый json, более вероятно, что вы получите HTTP-ответ 404, чем реальный возвращенный файл json.
Так что, возможно, файл находится не в том месте, или у сервера нет разрешений или чего-то еще, но вышесказанное - то, что пошло не так с моим. По общему признанию это, возможно, слишком определенно к тому, что пошло не так с моим и не определенно, что было неправильно с Вашим.
Но общая точка зрения остается в силе, это, скорее всего, вызвано тем, что веб-сервер возвращает HTTP-ответ для файла JSON, проверьте ответ в журнале сети в вашем браузере.
Ответ 2
Кажется, вы используете неправильные значения для ключа browser_action. Чтобы указать всплывающий шаблон, вы должны использовать default_popup. Должен быть:
{
"manifest_version": 2,
"name": "extension",
"version": "1.0",
"description": "My first Chrome extension.",
"browser_action": {
"default_icon": "icon.jpg",
"default_popup": "popup.html"
}
}
Ответ 3
Тип содержимого
Проверьте Content-Type файла manifest.json на вкладке Сеть. Это должно быть application/json вместо text/html.
Если у вас неправильный тип контента, вам может потребоваться настроить параметры вашего веб-сервера для правильного обслуживания файлов json.
В моем случае мне пришлось добавить его в файл с поддержкой сайтов nginx:
местоположение ~ *. (jpg | jpeg | gif | png | css | js | ico | xml | svg | json) $
Ответ 4
Я знаю, что это старый вопрос, но на всякий случай принятый ответ выше не работает для кого-то, не забудьте проверить правописание и путь к manifest.json
. Я ранее получил ту же ошибку из простой опечатки. Простая ошибка, но это случается!
Ответ 5
В моем конкретном случае это было добавлено в мой manifest.json
:
"storage": {
"managed_schema": "storage.json"
}
Но мой storage.json
был пуст. Мне пришлось отредактировать мой файл storage.json
с этим содержанием:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"properties": {
"adminSettings": {
"title": "A valid JSON string compliant with backup format.",
"description": "All entries present will overwrite local settings.",
"type": "string"
}
}
}
Но в целом, вот мой совет, когда вы получаете эту вводящую в заблуждение ошибочную строку токена 1-й строки 1, которая в основном приводит к: Что-то не так в одном или нескольких разделах вашего JSON и может иметь или не иметь никакого отношения к синтаксису в этом файле.
- Перемещение наиболее распространенные, простые строковые вещи в верхней части
manifest.json
файла, такие как manifest_version
, name
, description
и т.д. - Поместите более сложные элементы массива вглубь, начиная с той, которую вы подозреваете, может быть проблемой.
- Сохраните файл как UTF-8.
- Затем запустите его через онлайн-валидатор.
- Оттуда, если проблема не устранена, используйте другой блокнот и обрежьте/вставьте элементы из нижней части вашего JSON в другой текстовый файл и попробуйте снова загрузить свой JSON. (Обратите внимание, что вы, скорее всего, получите ошибку завершения блока JSON запятой без следующего элемента. Поэтому не забудьте отменить это при появлении ошибки.)
- В любом случае, повторяйте шаг 4, пока, наконец, ошибка 1-й строки 1 не исчезнет. В этот момент вы знаете раздел обидчика, с которым вам нужно иметь дело.
- Вставьте все остальное обратно, кроме этого раздела, в ваш
manifest.json
. Вот как я узнал, что мой блок storage
был проблемой. Я посмотрел на другое расширение Chrome, чтобы увидеть, как они работают, и понял мою ошибку.
Ответ 6
Эта ошибка также возникает, когда манифест пуст, или вообще нет манифеста. Если вы используете некоторую структуру, например. Угловая, просто проверьте, есть ли у вас манифест в вашей сборке. Если нет - добавьте "manifest.json" в свой массив angular.json/angular-cli.json к массиву активов.
Пример: "assets": ["assets", "favicon.ico", "manifest.json"]
Ответ 7
Браузер не может найти манифест из-за расширения (тип MIME). В Chrome DevTools> Сеть> Заголовки> Тип содержимого тип содержимого манифеста должен соответствовать фактическому расширению файла манифеста (.json
или .webmanifest
). Чтобы устранить ошибку 404, вам нужно объявить тип файла в web.config
:
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension=".webmanifest" mimeType="application/manifest+json" />
</staticContent>
Ответ 8
Это старо, но у меня была такая же проблема и выяснилось, что я не использовал стандартные двойные кавычки "
в моем скрипте, который я скопировал и вставил из официального документа Google
Ответ 9
Попробуйте сохранить файл manifest.json в формате UTF8.
Ответ 10
Я добавил атрибут crossorigin его работал.