javascript - js : format txt data to json data

标签 javascript angular typescript ecmascript-6

在我的应用程序中,我从 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/

相关文章:

javascript - Jquery 检查类名是否包含字符,例如 "Y"或 "N"

javascript - 可见时加载 iframe

javascript - 如何在没有 jQuery 的情况下访问 HTMLElement 中的数据对象

javascript - HTML/JavaScript 禁用 cookie

javascript - 使用 Angular 引入 Node 时出现的问题或如何在不使用 Angular-cli 的情况下创建平均应用程序

css - 自动处理 CSS 文件

css - 以 % 设置大小时不显示背景图像

angular - 处理 Angular 2 服务中的可观察错误

javascript - React - 将对象转换为字符串以在 DevExpress React Grid 中显示

generics - Typescript 中区分联合类型的通用匹配函数