将从文件中读取的字符串转换为nodejs中的json对象
Convert string which is read from a file to json object in nodejs
我正在从文件中读取字符串,并希望将其转换为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>
相关文章:
- 如何从NodeJS中的模块返回数组
- nodeJS中的uglify js“;找不到模块“”;
- 使用Express4将数组从Nodejs中的app.js传递到routes/index.js
- 从Nodejs中的函数返回数组,并将其发送到ejs视图
- NodeJS中的MySQL不适用于INSERT INTO中的多个语句
- nodejs中的socket.io客户端
- NodeJS中的高效深度复制
- NodeJS中的异步与同步
- NodeJS中的Parse Json文件在Node中显示意外结果
- 无法循环通过NodeJS中的JSON对象
- NodeJS中的事件,事件正在setInterval内发出,但不能没有setInterval
- 如何在nodejs中的async.each中进行同步http调用
- 如何知道我的NODEJS中的哪个javascript版本
- 如何通过回调访问nodejs中的mongodb计数结果
- 如何在nodejs中的MySQL查询中使用多个变量
- nodejs中的Javascript全局变量和属性-全局属性有时会被删除
- Nodejs中的async/await替换
- MQTT实时馈送到NodeJS中的html页面
- 如何限制用户访问ExpressJS/NodeJS中的静态html文件
- NodeJS中的多个嵌入循环