node.js と express.js をインストールしましたが、使用しようとしています:
var str = { test: 'info'};
obj = JSON.parse(str);
ただし、エラーが発生します: SyntaxError: Unexpected token 0 at Object.parse (native)
どうすればこれを修正できますか? ありがとう。
あなたはに解析Object
していObject
ますか?
JSON.parse()
期待string
:
var str = '{"test": "info"}';
obj = JSON.parse(str);
基本的に JSON.parse() は文字列を想定していますが、オブジェクトを渡していたので、代わりに次のようにします:
var original = { test: 'info'};
var str = JSON.stringify(original);
var restored = JSON.parse(str);
JSON に関する役立つドキュメントはこちらhttps://developer.mozilla.org/en/Using_native_JSON
str は文字列ではなく、オブジェクトです。最初にすべてを文字列に入れます。つまり、次のようになります。
var str = '{ "test": "info"}';
obj = JSON.parse(str);
JSONを作成する場合は、を使用する必要がありますJSON.stringify
。
var thing = { test: 'info' };
var json = JSON.stringify(thing);
JSONをオブジェクトに解析する場合は、を使用する必要がありますparse
。解析では、有効なJSONを使用する必要があります。
var json = '{ "test": "info" }'; //Use double quotes for JSON
var thing = JSON.parse(json);
有効なjsonを使用しているかどうかをテストする簡単な方法は、次のようなものを使用することです。http: //jsonlint.com/
呼び出しているものstr
は、実際にはすでにオブジェクトです。JSON は必要ありません。純粋な JavaScript だけで十分です。
var obj = { test: 'info'};
console.log( JSON.stringify(obj) ); // JSON output