将从文件中读取的string转换为nodejs中的json对象

我正在从文件中读取一个string,并希望将其转换为json对象文件内容: {name:"sda"}

码:

 var fs=require('fs'); var dir='./folder/'; fs.readdir(dir,function(err,files){ if (err) throw err; files.forEach(function(file){ fs.readFile(dir+file,'utf-8',function(err,jsonData){ if (err) throw err; var content=jsonData; var data=JSON.stringify(content); console.log(data); }); }); 

但是我得到这个输出: {name:\"sda\"}

由于你的文件不是有效的JSON,你可以使用eval (这是一个肮脏的黑客,但它的工作),例如:

 data = '{name:"sda"}'; eval('foo = ' + data); console.log(foo); 

除了将JavaScript值转换为JSONstring的JSON.stringify()方法之外,还可以使用将JSONparsing为string的JSON.parse()方法:

 fs.readFile(dir+file,'utf-8',function(err, jsonData){ if (err) throw err; var content = JSON.stringify(jsonData); console.log(content); var data = JSON.parse(content); console.log(data); }); 

检查下面的演示。

 var jsonData = '{name:"sda"}', content = JSON.stringify(jsonData), data = JSON.parse(content); pre.innerHTML = JSON.stringify(data, null, 4); 
 <pre id="pre"></pre>