【问题标题】:Parsing JSON-like file type to JSON in JavaScript在 JavaScript 中将类似 JSON 的文件类型解析为 JSON
【发布时间】:2023-03-12 06:27:01
【问题描述】:

我有很多文件扩展名不寻常的文件。

我需要使用 JavaScript 读取文件并将其内容转换为 JSON 或常规 JavaScript 对象。

这可能吗?

我有一些希望,因为文件的结构已经非常类似于 JSON:

// file.unusualFileType

Page: {
  id: P001
  Title: "Page Title"
  URL: "/home"
  Elements: {
    Button: {
      Text: "Click me"
      Action: SAVE
    }
  }
}

编辑:Håken Lid 为我的特定用例提供了一个解决方案。出于好奇,我仍然对如何使用 JavaScript 将任何文件作为字符串读取以及如何解析这样的字符串感兴趣。

【问题讨论】:

  • 看起来可能是 YAML
  • 需要大量替换/正则表达式才能使您的数据看起来像这样:jsfiddle.net/w0jb96vp
  • 你能说出不寻常的文件类型是什么吗?有人可能有一个包可以将其转换为 JSON。
  • 我会对适用于所有文件类型的解决方案感兴趣

标签: javascript json parsing


【解决方案1】:

如果去掉大括号,这将是有效的 yaml。您可以使用js-yaml 来解析示例数据,所以也许它也适用于您的其余文件?

const rawData = `
Page: {
  id: P001
  Title: "Page Title"
  URL: "/home"
  Elements: {
    Button: {
      Text: "Click me"
      Action: SAVE
    }
  }
}`
const yamlData = rawData.replace(/[{}]/g, '')
console.log(jsyaml.load(yamlData))
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-yaml/3.13.1/js-yaml.min.js"></script>

【讨论】:

  • 太棒了,感谢您的帮助!如果您有关于从哪里开始研究解决方案的建议:1) 使用 JavaScript 读取文件,而不是将文件内容复制/粘贴到 .js 文件并将它们包装在字符串中,并且 2) 也适用于非 yaml 之类的文件结构,请告诉我:)
  • 1) 如果是节点应用,使用 fs.readFile(),如果是浏览器应用,there are several options。 2)这是一个难题。坚持使用标准配置格式(如 json 或 yaml)要好得多。
  • 我添加了 js 文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-14
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多