【问题标题】:Reading from YAML File in Javascript [duplicate]用Javascript从YAML文件中读取[重复]
【发布时间】:2012-11-26 22:42:44
【问题描述】:

我正在尝试将 YAML 文件中的参数读入 Javascript。有什么好的图书馆可以做到这一点吗?

我试过这些库:https://github.com/nodeca/js-yamlhttp://code.google.com/p/javascript-yaml-parser/

但是这两个库只有在 YAML 以字符串形式给出时解析 YAML 的函数,而不是直接从 .yml 或 .yaml 文件中解析出来。是否有任何解析器从文件中读取 YAML 并将其转换为 JS 对象?

【问题讨论】:

  • 在你链接的第一个库中有多个关于如何解析*.yml文件的例子js-yaml

标签: javascript parsing yaml


【解决方案1】:

似乎很难找到在浏览器中使用 js-yaml 的好例子。可能是因为他们强调在 node.js 中使用解析器。

解析器位于https://github.com/nodeca/js-yaml。使用 NPM 安装它

npm install js-yaml

并从 node_modules/js-yaml/bin 目录中获取 js-yaml.js 文件。

这是一个快速、简单的演示,它加载一个 YAML 文件,使用 js-yaml 将其解析为对象,然后(用于验证)它执行原生 JSON.stringify 将 JSON 转换为字符串,最后使用 jquery $.parseJSON 来验证生成的 JSON。

(function () {
"use strict";
    $(document).ready(function () {
        $.get('/common/resources/LessonContentsLv01Ln01.yml')
        .done(function (data) {
          console.log('File load complete');
          console.log(jsyaml.load(data));
          var jsonString = JSON.stringify(data);
          console.log(jsonString);
          console.log($.parseJSON(jsonString));
      });
    });
}());

还有 HTML

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Read YAML</title>
                 <script src="//code.jquery.com/jquery-2.1.0.js">
        </script><script src='/vendor/js/js-yaml.js'>
        </script><script src='/test/readYaml.js'>
    </script>
</head>
<body>
</body>
</html>

Github 仓库https://github.com/nodeca/js-yaml

【讨论】:

  • +1 看起来我将这样做是为了在演示文稿中显示我的 YAML 注释。
  • Loading failed for the &lt;script&gt; with source “file:///jquery-2.1.0.js”. 与 html 中的其他脚本相同
【解决方案2】:

js-yaml 可以。我通过谷歌搜索“node js yaml”找到了这个,因为从 JavaScript 中读取文件是使用 node.js(或类似的东西)在服务器端完成的,而不是从浏览器中完成的。

js-yaml 的自述文件开始

用法:js-yaml [-h] [-v] [-c] [-j] [-t] 文件

位置参数:

带有 YAML 文档的文件

这是一个非常有力的证据,它确实直接从文件中处理 YAML。

【讨论】:

  • js-yaml 使用了“require”调用。我对 node.js 或任何服务器端几乎没有经验,对于这个项目,我只是在寻找可以在浏览器中运行的客户端解析器。
  • 我不知道任何用于读取 yaml 文件的客户端解决方案。我认为您能做的最好的事情是在客户端 JavaScript 中结合文件读取技术(请参阅 [stackoverflow.com/questions/4950567/… 问题中的一些技术),然后将它们与字符串的 yaml 解析结合起来。
【解决方案3】:

如果你想在浏览器中解析它,你可以在script标签中加载你想要解析的yaml文件,并使用js代码读取它的内容,它将为你提供字符串结果。如果你想在nodejs环境中解析yaml,你可以直接读取文件,也可以得到字符串。我不认为这是直接解析 yaml 或从字符串解析 yaml 的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多