我正在从文件中读取一个字符串,并希望将其转换为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\"}
答案 0 :(得分:1)
由于你的文件不是有效的JSON,你可以使用eval
(这是一个肮脏的黑客,但它有效),例如:
data = '{name:"sda"}';
eval('foo = ' + data);
console.log(foo);
答案 1 :(得分:0)
除了将JavaScript值转换为JSON字符串的 JSON.stringify()
方法外,您还可以使用解析字符串的 JSON.parse()
方法作为JSON:
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>