2012-01-24 8 views
1

JSON文字列を評価していない私は、単に出力として、この結果を取得していますが、このJSON文字列JSON.parseが正しく

[{"created_at":"2012-01-24T22:36:21Z","name":"joe","age":42,"updated_at":"2012-01-24T22:36:21Z"}] 

を解析するためにJSON.parseを使用しています:「shouldn

[object Object] 

その結果になります。私はこれをカプチーノのフレームワーク内で使用しています。誰も私がここで間違っていることを知っていますか?

+1

が、それは結果である可能性があり、配列内のオブジェクトは、それが正しいのです。何らかの形でそれをデバッグしようとします。例えば 'alert([{a:1}])'警告は[オブジェクトオブジェクト] 'を呼び出していますが、' console.log([{a:1}]) 'はあなたにすべてを示します – ori

答えて

1

[object Object]は、toStringを呼び出すと表示されるオブジェクトです。あなたの結果を受け取り、呼び出しようとしているようですobj.toString()

また、あなたのJSONは1つの要素を含む配列なので、結果が正しいことを確認するには、[0 ]インデックス:

obj[0].name // should be "joe". 

var text = '[{"created_at":"2012-01-24T22:36:21Z","name":"joe","age":42,"updated_at":"2012-01-24T22:36:21Z"}]'; 

var obj = JSON.parse(text); 

alert(obj[0].name); //alerts joe 

DEMO


またはG [] - - でも、このかかわらず、これらを削除し、それが動作するはずです... それは実際にそれが角括弧内にありますので、これは配列ですずっと

var text = '{"created_at":"2012-01-24T22:36:21Z","name":"joe","age":42,"updated_at":"2012-01-24T22:36:21Z"}'; 

var obj = JSON.parse(text); 

alert(obj.name); //still joe 

DEMO

+0

答えに感謝します。私のエラーはJSON.parseと無関係でしたが、JSONデータが別の関数によって返されていなかったためです。 –

0

をやっていないので、他には、配列を取り除きますパーサはこれを配列(オブジェクトの型です)として認識しますが、期待通りの結果は得られません。今後の参考のためにも

: それをlintのみ、そしてあなたの構文が台無しにされているかどうか: http://jsonlint.com/

+0

角括弧を削除するだけで、それをオブジェクトリテラルに変換します。オブジェクトリテラルは '[object Object]'を返します。 –

+0

実際に解析しているJSON文字列の単純版を実際に投稿しました(実際の文字列には何百ものオブジェクトがあります)、JSONLintとhttp://jsonformatter.curiousconcept.com/(より良いバリデーターIMO ) –

+0

ああ私はあまりにもそれが好きです。 Sooo私は奇妙なエラーに遭遇しました。それは、文字列であることを確認する必要がある場合があります.Adam Ricks Answeredのようなものです。 – Relic