node.js - 使用 node.js 将简单文本转换为 json
问题描述
今天我想将文本翻译成 json 数据
例子:
1 kokoa#0368's Discord Profile Avatar kokoa#0000 826
2 Azzky 陈东晓#7475's Discord Profile Avatar Azzky 陈东晓#0000 703
3 StarKleey 帅哥#6163's Discord Profile Avatar StarKleey 帅哥#0000 640
到 =>
{
"kokoa#0000": "826",
"Azzky 陈东晓#0000": "703",
"StarKleey 帅哥#0000": "640"
}
目前我有这个:
fs.appendFile(`./Text/mess.txt`, `${body.replace(/s Discord Profile Avatar/g, '').split(/[\n \t ' ']/)}`, function (err) {
所以结果就是这个=>
1,kokoa#0368,,kokoa#0000,826
2,Azzky 陈东晓#7475,,Azzky 陈东晓#0000,703
3,StarKleey 帅哥#6163,,StarKleey 帅哥#0000,640
但我想删除第一个数字,删除重复的数组并在 .json 上创建这个
有人知道我该怎么做吗?如果我需要新的方法来制作这个,这不是问题。
谢谢你。
解决方案
您可以逐行读取文件并将每一行转换为具有键和值的 2 元素数组。例如,第一行可以转换为:
['kokoa#0000','826']
如您所见0
,索引是键,1
索引是值。当您将所有行转换为这种数组时,您可以将其缩减为一个对象并将其转换为JSON
.
参见示例方法:
function convertLinesToJson(lines) {
const dpaText = "Discord Profile Avatar";
const jsonObject = lines
//only with 'Discord ...' text
.filter(line => line.includes(dpaText))
//get what is after 'Discord ...' text and split into 2-elements array
.map(line => {
const index = line.indexOf(dpaText) + dpaText.length;
const keyValue = line.substr(index).trim().split(/[ ]{4}/);
return keyValue;
})
// convert [key, value] array into an object
.reduce((accumulator, currentValue) => {
accumulator[currentValue[0]] = currentValue[1];
return accumulator;
}, {});
//convert object to JSON
return JSON.stringify(jsonObject);
}
用法:
let lines = [
"1 kokoa#0368's Discord Profile Avatar kokoa#0000 826",
"2 Azzky 陈东晓#7475's Discord Profile Avatar Azzky 陈东晓#0000 703",
"3 StarKleey 帅哥#6163's Discord Profile Avatar StarKleey 帅哥#0000 640"
];
const json = convertLinesToJson(lines);
console.log(json);
上面的示例代码打印:
{"kokoa#0000":"826","Azzky 陈东晓#0000":"703","StarKleey 帅哥#0000":"640"}
也可以看看:
推荐阅读
- javascript - 为什么在`array.length && ...`的短路评估中呈现“0”
- pyspark - 从 PySpark DataFrame 中删除 na 行索引
- c# - 如何让我的窗口覆盖系统范围内所有打开的窗口?
- python - 将多列折叠(或组合)成两个单独的列python
- entity-framework - 动态过滤,无法动态获取属性名实体框架
- amazon-web-services - Ansible:将 Cloudwatch 日志事件触发器添加到 Lambda 函数
- javascript - 了解 reactjs 中的状态?
- microsoft-graph-api - 团队在线会话 API
- python - Lambda 函数:PUT S3 --> 更新表
- python - Python ephem 提前一小时计算日出和日落