web-dev-qa-db-fra.com

Manifest n'est pas valide JSON. Ligne: 1, colonne: 1, jeton inattendu

continue à avoir cette erreur: "Le manifeste n'est pas un JSON valide. Ligne: 1, colonne: 1, Jeton inattendu." Je ne comprends pas quel est le problème avec mon code? voici ce que j'ai jusqu'à présent:

{
    "manifest_version": 2,
    "name": "extension",
    "version": "1.0",
    "description": "My first Chrome extension.",
    "browser_action": {
        "default_icon": "icon.jpg",
        "popup": "popup.html"
    }
}
11
Joseph Young

J'avais mes propriétés de fichier manifest.json définies avec Action de construction: Aucune, dans Visual Studio 2010.

La modification de Visual Studio en contenu garantissait le transfert du fichier lors du déploiement.

 enter image description here

Peut-être que le vôtre est un problème similaire.

Modifier

Compte tenu de mon vote négatif, je pensais que je devrais développer et dire que mon point était que, étant donné que, à la ligne 1, colonne 1, json est valide, il est plus probable que vous obteniez une réponse 404 http que le fichier json réel renvoyé.

Alors peut-être que le fichier n'est pas au bon endroit ou que le serveur n'a pas les permissions ou quoi que ce soit mais ce qui précède est ce qui n'allait pas avec le mien. Certes, c'est peut-être trop spécifique à ce qui n'allait pas avec le mien et pas vraiment ce qui n'allait pas avec le vôtre.

Mais le problème général persiste, car il est plus probable que le serveur Web renvoie une réponse http pour le fichier json. Vérifiez la réponse dans le journal réseau de votre navigateur.

5
Snoophogg

Il semble que vous utilisiez des valeurs incorrectes pour browser_action key. Pour spécifier un modèle contextuel, vous devez utiliser default_popup . CA devrait etre :

{
  "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

Type de contenu

Vérifiez le type de contenu du fichier manifest.json dans l'onglet Réseau. Cela doit être application/json au lieu de text/html.

Si vous avez un type de contenu incorrect, vous devrez peut-être configurer les paramètres de votre serveur Web pour servir correctement les fichiers json.

Dans mon cas, je devais l'ajouter au fichier nginx activé pour les sites} _:

emplacement ~ *. (jpg | jpeg | gif | png | css | js | ico | xml | svg | json) $

1
Datsos

Cette erreur se produit également lorsque manifeste est vide ou qu’il n’existe aucun manifeste. Si vous utilisez un cadre, par exemple. Angular, vérifiez si votre manifeste de production est manifeste. Sinon, ajoutez "manifest.json" dans votre tableau angular.json/angular-cli.json au tableau d'actifs.

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

0
Honzik

Essayez de sauvegarder le fichier manifest.json au format UTF8. 

0
Tony

Je sais que c’est une vieille question, mais au cas où la réponse acceptée ci-dessus ne fonctionnerait pas, assurez-vous de vérifier l’orthographe et le chemin du manifest.json sont corrects. J'ai déjà eu la même erreur d'une simple faute de frappe. Simple erreur mais ça arrive! 

0
mikeym

Dans mon cas particulier, j'ai ajouté ceci dans mon manifest.json:

"storage": {
   "managed_schema": "storage.json"
}

Mais mon storage.json était vide. Je devais éditer mon fichier storage.json avec ce contenu:

{
   "$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"
      }
   }
}

Mais en général, voici mon conseil lorsque vous obtenez cette erreur trompeuse de Token 1 inattendue de Line 1 Col 1 qui se traduit essentiellement par: Quelque chose ne va pas dans une ou plusieurs sections de votre JSON et n’a peut-être rien à voir avec la syntaxe dans ce script. fichier

  1. Déplacez les éléments de chaîne les plus courants et les plus simples en haut de votre fichier manifest.json, tels que manifest_version, name, description, etc. 
  2. Placez les éléments les plus élaborés vers le bas, en commençant par celui que vous pensez le plus susceptible de poser problème. 
  3. Enregistrez le fichier au format UTF-8. 
  4. Ensuite, exécutez-le via un validateur en ligne. 
  5. À partir de là, si le problème persiste, utilisez un autre bloc-notes et coupez/collez les éléments situés au bas de votre JSON dans un autre fichier texte, puis essayez à nouveau de télécharger votre JSON. (Remarque: vous obtiendrez probablement une erreur indiquant que votre bloc JSON se termine par une virgule sans l'élément suivant. N'oubliez donc pas de l'annuler lorsque vous obtenez une erreur.) 
  6. Dans tous les cas, répétez l’étape 4 jusqu’à ce que l’erreur de Line 1 Col 1 disparaisse. À ce stade, vous connaissez la section fautive que vous devez traiter.
  7. Collez tout le reste en arrière sauf cette section dans votre manifest.json. C’est ainsi que j’ai découvert que le problème était dû à mon bloc storage. J'ai consulté une autre extension Chrome pour voir comment ils ont procédé et réalisé mon erreur.
0
Volomike

C’est vieux, mais j’ai eu le même problème et j’ai découvert que je n’utilisais pas les guillemets standard " dans mon script, que je copiais et collais à partir du officiel Google Doc

0
Cesar Bielich