0
var jsonObject = collages;

file.writeFile('collage.json', JSON.stringify(jsonObject), function(err){
    if (err) throw err;
    console.log('Success');
});


var result = '';
result += file.readFile('collage.json', 'utf-8', function(err, data) {
    if(err) throw err;
    console.log(data);
});
JSON.parse(result);

「SyntaxError: Unexpected token u - at Object.parse(native)」というメッセージが表示されます

私は JSON が初めてで、書き出したオブジェクトを再作成できないようです。結果を印刷すると、文字列化されたjsonオブジェクトがありますが、その文字列を解析しようとするとエラーが発生します。オブジェクト コラージュは、単純に 6 つのフィールド (x 値、y 値、幅など) を保持するレイヤー オブジェクトの配列です。JSONオブジェクトを読み込んで、読み込んだときにコラージュを再作成できるようにしたい.

4

3 に答える 3

0

file.readFileは非同期アクションであり、同期のように動作しています。

于 2012-11-20T16:53:19.240 に答える
0

readFileSync たとえば、次を使用してこれを同期的に行うことができます。

var result = file.readFileSync('collage.json').toString();

json ファイルの場合、Node.js はこれを実現するためのさらに簡単な方法を提供します。

var result = require('./callage.json');

require.json 拡張子に気づき、ファイルを json として解析します。

http://nodejs.org/api/fs.html#fs_fs_readfilesync_filename_options http://nodejs.org/api/modules.html#modules_file_modules

于 2013-06-15T06:55:40.197 に答える
0

readFileは非同期なので、コードを少し再配置する必要があります。

var result = null;

file.readFile('collage.json', 'utf-8', function(err, data) {
    if(err) throw err;
    result = JSON.parse(data);
});

非同期関数では、依存するコードをコールバックで実行する必要があることに注意してください。

于 2012-11-20T16:58:31.583 に答える