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

Convert string which is read from a file to json object in nodejs

本文关键字:nodejs 中的 json 对象 转换 字符串 文件 读取      更新时间:2023-09-26

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

除了 JSON.stringify() 方法将JavaScript值转换为JSON字符串之外,您还可以使用 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>