将从文件中读取的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>