2011-04-13 2 views
9

Essayer d'utiliser une lib mais obtenir cette erreur ...Qu'est-ce qui doit changer dans ce fichier package.json pour fonctionner avec npm 0.3.0?

npm ERR! JSON.parse Failed to parse package.json data. 
npm ERR! JSON.parse Note that package.json must be actual JSON, not 
npm ERR! JSON.parse just a JavaScript object. 
npm ERR! JSON.parse 
npm ERR! JSON.parse This changed in npm 0.3.0, and is not a bug in npm. 
npm ERR! JSON.parse Tell the package author to fix their package.json file. 

Je ne sais pas quels changements sont probablement nécessaires pour la rendre valide JSON, merci beaucoup!

+0

http://jsonlint.com/ – Domenic

+0

@fancy vérifier ma réponse, je pense que c'est la manière la plus élégante. Pouvez-vous réinitialiser l'anser? – Barun

Répondre

14

JSON valide doit contenir à la fois les clés et les valeurs d'un objet entre guillemets. Entourez toutes vos clés entre guillemets et cela devrait faire disparaître l'erreur.

Référence: JSON spec

Mise à jour: Je l'ai fait le sale boulot pour vous. Faites-moi savoir si cela le corrige.

{ "name": "embedly" 
, "version": "0.3.2" 
, "description": "Embedly client library for node" 
, "homepage": "https://github.com/embedly/embedly-node" 
, "keywords": [] 
, "author": 
    { "name": "Bob Corsaro" 
    , "email": "[email protected]" 
    , "url": "http://www.google.com/profiles/rcorsaro" 
    } 
, "repository": 
    { "type": "git" 
    , "url": "git://github.com/embedly/embedly-node" 
    } 
, "bugs": { "web": "http://github.com/embedly/embedly-node/issues/" } 
, "directories": 
    { "doc": "./docs" 
    , "lib": "./lib" 
    , "test": "./test" 
    } 
, "dependencies": {"hashish": "", "qs": ""} 
, "devDependencies": {"vows": ">= 0.5.6"} 
, "main": "./lib/embedly.js" 
, "scripts": { "test": "vows" } 
, "bin": 
    { "embedly_oembed": "bin/embedly_oembed.js" 
    , "embedly_objectify": "bin/embedly_objectify.js" 
    , "embedly_preview": "bin/embedly_preview.js" 
    } 
} 
+4

L'autre différence commune est le commun dans tous les dictionnaires ou tableaux. Le JSON ne doit pas avoir de virgule de fin. – Erik

+0

Cela m'a jeté aussi que je devais envelopper un booléen dans les guillemets. Il passait sur http://jsonlint.com/ sans les citations. – Antfish

5

En plus de @Hans Engel utilisation de réponse npm help json pour obtenir la spécification de ce qui devrait être dans le fichier package.json

16

Juste pour compléter la réponse, vous pouvez simplement utiliser un validateur en ligne JSON pour valider votre package.json.
Je recommande fortement http://jsonlint.com/, collez votre package.json dans la zone de texte et cliquez sur le bouton Valider, c'est tout!

+1

+100 upvotes si je pouvais donner –

+0

@SarasArya Combien upvotes pour ma réponse? – Barun

+0

Et je recommande fortement ma façon de valider les objets json @afshin Mehrabani – Barun

0

J'ai été confronté à ce problème et dans mon cas c'était juste à la place de la virgule (,). J'ai utilisé un point (.). Vous pouvez simplement l'ouvrir dans n'importe quel validateur JSON et cela vous aidera. L'un des liens du validateur JSON est le suivant. http://www.bodurov.com/JsonFormatter/

8

façon super cool pour fixer/valider la package.json:

node package.json

et vous avez votre JSON validé ou la ligne d'erreur.

Pourquoi utiliser jsonlint, semble assez boiteux.

+0

Malheureusement, un seul upvote est autorisé. : p –

0

J'ai également reçu le même message d'erreur, exécutez d'abord npm package.json pour vérifier les erreurs dans le fichier package.json, sinon exécutez npm cache clean.

Questions connexes