web-dev-qa-db-ja.com

マニフェストは有効な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"
    }
}
20
Joseph Young

Visual Studio 2010では、manifest.jsonファイルプロパティをビルドアクション:なしで設定しました。

Visual StudioでContentに変更すると、デプロイ時にファイルが確実に転送されました。

enter image description here

たぶんあなたのも同様の問題です。

編集

私のダウン投票を考えて、私は拡張して、私のポイントは、行1、列1に有効なjsonがあり、実際のjsonファイルが返されるよりも404 http応答を受け取る可能性が高いということだと思いました。

したがって、ファイルが適切な場所にないか、サーバーに権限がないなどの可能性がありますが、上記が私の問題です。確かに、それは多分私のもので間違っていたものにあまりにも特定であり、あなたのもので間違っていたものを明確にではありません。

しかし、一般的なポイントはまだ残っています。Webサーバーがjsonファイルのhttp応答を返すことが原因である可能性が高いため、ブラウザのネットワークログで応答を確認してください。

10
Snoophogg

コンテンツタイプ

[ネットワーク]タブでmanifest.jsonのContent-Typeを確認します。これはtext/htmlではなくapplication/jsonである必要があります。

間違ったコンテンツタイプがある場合は、Webサーバーの設定を構成して、jsonファイルを正しく提供する必要がある場合があります。

私の場合、nginx sites-enabledファイルに追加する必要がありました。

場所〜*。(jpg | jpeg | gif | png | css | js | ico | xml | svg | json)$

5
Datsos

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"
  }
}
4
yogesh kumar

私はこれが古い質問であることを知っていますが、万が一上記の受け入れられた答えがうまくいかない場合に備えて、manifest.jsonのスペルとパスが正しいことを確認してください。以前、単純なタイプミスで同じエラーが発生しました。単純な間違いですが、それは起こります!

2
mikeym

私の特定のケースでは、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"
      }
   }
}

しかし、一般的に、このLine 1 Col 1 Unexpected Token誤解を招くエラーを取得した場合の基本的なアドバイスは次のとおりです:このファイルの構文に関係するもの

  1. manifest.jsonnamedescriptionなど、最も一般的で単純な文字列をmanifest_versionファイルの先頭に移動します。
  2. 最も精巧な配列のものを一番下に配置し、最も疑わしいものから始めます。
  3. ファイルをUTF-8として保存します。
  4. 次に、オンライン検証ツールで実行します。
  5. それでも問題が解決しない場合は、別のメモ帳を使用して、JSONの下部から別のテキストファイルにアイテムをカットアンドペーストし、JSONをもう一度アップロードしてください。 (注:JSONブロックを次の項目のないコンマで終了するエラーが発生する可能性があります。エラーが発生した場合は、忘れずに元に戻してください。)
  6. とにかく、最終的にLine 1 Col 1エラーがなくなるまで、手順4を繰り返します。その時点で、対処する必要がある問題のセクションがわかります。
  7. そのセクション以外のすべてをmanifest.jsonに戻します。これが、私のstorageブロックが問題であることがわかった方法です。別のChrome拡張機能を見て、彼らがどのように処理したかを確認し、エラーを認識しました。
2
Volomike

このエラーは、マニフェストが空の場合、またはマニフェストがまったくない場合にも発生します。 u何らかのフレームワークを使用する場合、例えば角度、実稼働ビルドにマニフェストがあるかどうかを確認してください。そうでない場合は、angular.json/angular-cli.jsonの「manifest.json」をアセット配列に追加します。

例:"assets": ["assets", "favicon.ico", "manifest.json"]

1
Honzik

拡張機能(MIMEタイプ)のため、ブラウザーはマニフェストを見つけることができません。 Chrome DevTools> Network> Headers> Content-Type]で、マニフェストのコンテンツタイプは実際のマニフェストファイル拡張子(.jsonまたは.webmanifest)と一致する必要があります。 404エラーを解決するには、web.configでファイルタイプを宣言する必要があります。

<staticContent>
  <mimeMap fileExtension=".json" mimeType="application/json" />
  <mimeMap fileExtension=".webmanifest" mimeType="application/manifest+json" />
</staticContent>
1
Alfred Wallace

クロスオリジン属性を追加しました。

<link rel="manifest" crossorigin="use-credentials" href="%PUBLIC_URL%/manifest.json" />
1
ANIL PATEL

Manifest.jsonファイルをUTF8形式で保存してください。

0
Tony

これは古いですが、同じ問題があり、標準の二重引用符を使用していないことがわかりました"公式Googleドキュメント からコピーして貼り付けたスクリプト内

0
Cesar Bielich