2011-08-11 10 views
1

:JSONでJSON.parse( '{"key": "value"}')はうまくいくが、JSON.parse( '{key: "value"}')はしないのはなぜですか?ノードREPLから

> JSON.parse('{"key" : "value"}') 
{ key: 'value' } 
> JSON.parse('{key : "value"}') 
SyntaxError: Unexpected token ILLEGAL 
    at Object.parse (native) 
    at [object Context]:1:6 
    at Interface.<anonymous> (repl.js:171:22) 
     at Interface.emit (events.js:64:17) 
    at Interface._onLine (readline.js:153:10) 
    at Interface._line (readline.js:408:8) 
    at Interface._ttyWrite (readline.js:585:14) 
    at ReadStream.<anonymous> (readline.js:73:12) 
    at ReadStream.emit (events.js:81:20) 
    at ReadStream._emitKey (tty_posix.js:307:10) 

答えて

14

すべてのキーは文字列であり、すべての文字列は二重引用符で区切られます。

JavaScriptでは、異なる文字を使用して文字列を区切ることができ、オブジェクトリテラルの識別子として識別子を使用できますが、JSONはJavaScriptではありません。

+0

+1。また、何かjsonが有効かどうかをチェックしたい場合は、http://jsonlint.com/のようなバリデーターを使用することができます – jammypeach

0

JSONは、キーと値の両方が文字列であると想定しています。

http://www.json.org/js.html

+0

値は実際に文字列である必要はありません。ブール値、数字などでもかまいませんが、キーは文字列でなければなりません。 – Seldaek

0

あなたの第二の例ではJSONではありませんので。

関連する問題