在我的应用程序中,我从 txt 文件加载一些 txt 数据:
这个txt文件看起来像这样
conosle.log(myData):
### Comment 1
## Comment two
dataone=1
datatwo=2
## Comment N
dataThree=3
我想将数据格式化为 json,以便
- 我删除所有注释行(以 # 开头);还有空行
- 将所有 = 替换为:
- 向我的数据属性添加引号,如下所示
- 将所有内容包裹在 { } 内
结果会是这样的:
{
"dataone":"1"
"datatwo":"2"
"dataThree":"3"
}
有什么快速的方法吗?
最佳答案
既然听起来你想要一些粗鲁和简单的东西,那么这样吧:
let dataObject = myData
// split line-by-line first
.split('\n')
// drop comments, keep lines with =
.filter(line => !line.startsWith('#') && line.includes('='))
// convert to [key, value] pairs
.map(line => line.split('='))
// collect pairs into object
.reduce((obj, [key, value]) => {
obj[key] = value.trim();
return obj;
}, {});
let json = JSON.stringify(dataObject);
缺点
- 不允许使用重复的键。然而,大多数 JSON 库实现也不接受它们。
- 您始终会获得字符串值,即使像
"3"
这样的值可以在 JSON 中表示为3
。 - 未尝试对原始示例 txt 中未显示的情况提供任何错误处理
关于javascript - js : format txt data to json data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61225740/