在nodejs中的if语句中读取txt文件
Read txt file in if Statement in nodejs
我将一些变量作为对象数组保存在 txt 文件中,问题是我如何读取它们并将其与 for 循环中的另一个变量进行比较。
谢谢。
我保存在 txt 文件中的格式:
[{"sekke":"445,675","halfsekke":"145,600"}]
我想阅读的代码是:
NodeJs:
var array = fs.readFileSync('data.txt').toString().split("\n");
console.log(array[0]['sekke'])
for (var key in array[0]['sekke']) {
console.log("key " + key + " has value " + array);
}
这是错误的,我怎样才能读到这样的东西?
if (array['sekke] == 100){
console.log("is ok");
}
尝试使用以下代码:
fs.readFile('data.txt', 'utf8', function read(err, data) {
if (err) {
throw err;
}
data = JSON.parse(data);
var dataObject = data[0];
for (i=0;i<Object.keys(dataObject).length;i++) {
var ss = dataObject[i];
var key = Object.keys(ss);
for(varj=0;j<ss[key];j++){
//your if condition logic
}
}
});
如果您想像对象一样使用它,您需要将字符串解析回 JSON。
如果您的文件是数组的集合(每行 1 个数组),则像您一样将其拆分为 \n,然后使用 JSON.parse
对其进行解析。您需要 运行 在每一行上分别考虑使用地图或循环。
但是,如果您的文件是一大堆对象,那么只需将其读入,然后使用 JSON.parse
.
解析整个文件
此外,请考虑使用 readFile 的异步版本,因为使用 readFileSync 会在读取时阻塞整个 node.js 应用程序(随着文件变大,这会成为一个问题)
我将一些变量作为对象数组保存在 txt 文件中,问题是我如何读取它们并将其与 for 循环中的另一个变量进行比较。
谢谢。
我保存在 txt 文件中的格式:
[{"sekke":"445,675","halfsekke":"145,600"}]
我想阅读的代码是:
NodeJs:
var array = fs.readFileSync('data.txt').toString().split("\n");
console.log(array[0]['sekke'])
for (var key in array[0]['sekke']) {
console.log("key " + key + " has value " + array);
}
这是错误的,我怎样才能读到这样的东西?
if (array['sekke] == 100){
console.log("is ok");
}
尝试使用以下代码:
fs.readFile('data.txt', 'utf8', function read(err, data) {
if (err) {
throw err;
}
data = JSON.parse(data);
var dataObject = data[0];
for (i=0;i<Object.keys(dataObject).length;i++) {
var ss = dataObject[i];
var key = Object.keys(ss);
for(varj=0;j<ss[key];j++){
//your if condition logic
}
}
});
如果您想像对象一样使用它,您需要将字符串解析回 JSON。
如果您的文件是数组的集合(每行 1 个数组),则像您一样将其拆分为 \n,然后使用 JSON.parse
对其进行解析。您需要 运行 在每一行上分别考虑使用地图或循环。
但是,如果您的文件是一大堆对象,那么只需将其读入,然后使用 JSON.parse
.
此外,请考虑使用 readFile 的异步版本,因为使用 readFileSync 会在读取时阻塞整个 node.js 应用程序(随着文件变大,这会成为一个问题)