2011-04-13 58 views
9

Tratar de usar un lib pero conseguir este error ...¿Qué debe cambiar en este archivo package.json para trabajar con 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. 

No está seguro de qué cambios se necesitan probable para que sea válida JSON, muchas gracias!

+0

http://jsonlint.com/ – Domenic

+0

@fancy verifique mi respuesta, creo que es la manera más elegante. ¿Puedes restablecer el anser? – Barun

Respuesta

14

JSON válido debe tener tanto las claves como los valores de un objeto entre comillas. Rodee todas sus teclas entre comillas y eso debería hacer desaparecer el error.

Referencia: JSON spec

actualización: Hice el trabajo sucio por ti. Avíseme si esto lo soluciona.

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

La otra diferencia común es el rastro común en cualquiera de los diccionarios o matrices. El JSON no debe tener una coma al final. – Erik

+0

Esto me tiró también ya que tuve que ajustar un booleano entre comillas. Estaba pasando http://jsonlint.com/ sin las comillas. – Antfish

5

Además del uso respuesta de @Hans Engel npm help json para obtener la especificación de lo que debería ser en el archivo package.json

16

Sólo para completar la respuesta, sólo tiene que utilizar un validador de JSON en línea para validar su package.json.
Recomiendo encarecidamente http://jsonlint.com/, pegue su package.json en el área de texto y haga clic en el botón Validar, ¡eso es todo!

+1

+100 votaciones al alza si pudiera dar –

+0

@SarasArya ¿Cuánto votos a favor votan por mi respuesta? – Barun

+0

Y recomiendo encarecidamente mi forma de validar los objetos json @afshin Mehrabani – Barun

0

He pasado por este problema y en mi caso fue solo en lugar de coma (,). He usado punto (.). Simplemente puede abrirlo en cualquier validador JSON y lo ayudará a subir. Uno de los enlaces del validador JSON es el siguiente. http://www.bodurov.com/JsonFormatter/

8

manera Superfrío para fijar/validar el package.json:

node package.json

y que tenga su JSON validado o la línea de error.

¿Por qué usar jsonlint, suena bastante cojo?

+0

lamentablemente se permite un voto ascendente. :pag –

0

También recibí el mismo mensaje de error, primero ejecute npm package.json para verificar los errores en el archivo package.json, si no, ejecute npm cache clean.

Cuestiones relacionadas