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);
我得到一个"语法错误:意外的令牌u - 在Object.parse(native)"
我是JSON的新手,我似乎无法重新创建我写出来的对象。当我打印出结果时,我有字符串化的json对象,但是当我尝试解析该字符串时,会给出错误。对象拼贴只是一个包含6个字段(x值,y值,宽度等)的图层对象数组。任何帮助都将非常感激,我想阅读JSON对象,以便我可以在阅读时重新创建拼贴。
答案 0 :(得分:0)
file.readFile
是一个异步操作,你表现得像是同步的。
答案 1 :(得分:0)
readFile
是异步的,因此您只需稍微重新排列代码:
var result = null;
file.readFile('collage.json', 'utf-8', function(err, data) {
if(err) throw err;
result = JSON.parse(data);
});
请记住,对于异步函数,您必须在回调中执行相关代码。
答案 2 :(得分: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