将从文件读取的字符串转换为nodejs中的json对象

时间:2015-09-29 12:12:15

标签: javascript node.js

我正在从文件中读取一个字符串,并希望将其转换为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\"}

2 个答案:

答案 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>