Манифест недействителен 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 обеспечило передачу файла при развертывании.

enter image description here

Может быть, у вас похожая проблема.

редактировать

Учитывая мое отрицательное мнение, я подумал, что должен расширить и сказать, что моя точка зрения заключается в том, что, учитывая, что в строке 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 и может иметь или не иметь никакого отношения к синтаксису в этом файле.

  1. Перемещение наиболее распространенные, простые строковые вещи в верхней части manifest.json файла, такие как manifest_version, name, description и т.д.
  2. Поместите более сложные элементы массива вглубь, начиная с той, которую вы подозреваете, может быть проблемой.
  3. Сохраните файл как UTF-8.
  4. Затем запустите его через онлайн-валидатор.
  5. Оттуда, если проблема не устранена, используйте другой блокнот и обрежьте/вставьте элементы из нижней части вашего JSON в другой текстовый файл и попробуйте снова загрузить свой JSON. (Обратите внимание, что вы, скорее всего, получите ошибку завершения блока JSON запятой без следующего элемента. Поэтому не забудьте отменить это при появлении ошибки.)
  6. В любом случае, повторяйте шаг 4, пока, наконец, ошибка 1-й строки 1 не исчезнет. В этот момент вы знаете раздел обидчика, с которым вам нужно иметь дело.
  7. Вставьте все остальное обратно, кроме этого раздела, в ваш 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 его работал.