javascript - JS : Textfile to JSON

标签 javascript json node.js text

我是 JS 的初学者,需要一些帮助。 我有一个如下所示的文本文件:

JOBID,NAME,USER,NODELIST,CPUS,STATE,REASON
2527,_DP-2-Q-095-84-1-50.job,loe_mk,,4,PENDING,launch failed requeued held
2528,_Q-095-76-2-05.job,fr_tho,,4,PENDING,launch failed requeued held
2515,_DC-3-V-095-76-0-10.job,pi_tim,node01,4,RUNNING,None

因此 JOBID、NAME 等是以下值的名称。

现在我想将其解析为 JSON 对象。 我尝试这样做:

var jdata = new Array();
jdata = data.toString().split('\n');
jsonstring = JSON.stringify(jdata);
fs.writeFile('out/data.json', jsObj, (err) => {
  if (err) throw err;
});

但是结果不是 JSON 对象对吗? 我需要以某种方式将参数相互连接起来,这样它看起来像:

{
    "JOBID": 2527,
    "NAME": '_DP-2-Q-095-84-1-50.job',
    ...
}

有人可以告诉我如何正确转换它,或者这种方式根本不可能吗?

谢谢你了

最佳答案

您已经正确开始,但不能简单地使用 JSON.stringify(jdata); 转换为 JSON。纯JS的例子如下:

//Load in Input
var input = `JOBID,NAME,USER,NODELIST,CPUS,STATE,REASON
2527,_DP-2-Q-095-84-1-50.job,loe_mk,,4,PENDING,launch failed requeued held
2528,_Q-095-76-2-05.job,fr_tho,,4,PENDING,launch failed requeued held
2515,_DC-3-V-095-76-0-10.job,pi_tim,node01,4,RUNNING,None`;

//Split into Lines
var data = input.split("\n");
//Get all the header values
var header = input.split("\n")[0].split(",");

//Init Output Array
var output = [];

//For every row except the first (1...n)
for(var i=1;i<data.length;i++){
    //Get all the values
    var values = data[i].split(",");
    var obj = {};

    //For every value in the header
    for(var j=0;j<header.length;j++){
        //obj[JOBID] = 2527
        obj[header[j]] = values[j];
    }

    //Push to output
    output.push(obj);
}

现在的输出将等于您的对象数组。然后您可以像以前一样保存它。

// [{"JobID": 2527, "...},{..}...]
jsonstring = JSON.stringify(output);
fs.writeFile('out/data.json', jsObj, (err) => {
  if (err) throw err;
});

关于javascript - JS : Textfile to JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50388989/

相关文章:

javascript - 在 promise 中得到 Express 回复?

javascript - 替换字符串中相似的单词

node.js - 如何使用 Sails.js + Jade 制作多语言网站

javascript - 像在 JS 中一样处理 Python 异常

javascript - 混合内容 jQuery ajax HTTPS 请求已在 Laravel 上被阻止

javascript - 使用 ngClipboard 的 Angular Controller - 错误 : Unknown provider

javascript - 使用 AngularJS 和嵌套在数组中的数组中的 JSON 对象,如何将数据获取到 html 中?

asp.net - 为什么ASP.NET JSON Web服务在 'd'中返回结果?

java - Jackson ObjectMapper解析HashMap返回所有字段= NULL

types - 区分Node原生函数和匿名函数