关于解析:使用Javascript从YAML文件读取

Reading from YAML File in Javascript

本问题已经有最佳答案,请猛点这里访问。

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

我已经尝试了以下库:https://github.com/nodeca/js-yaml和http://code.google.com/p/javascript-yaml-parser/

但是两个库都仅具有以字符串形式给出YAML的功能,而不是直接从.yml或.yaml文件中进行解析的函数。 是否有解析器从文件读取YAML并将其转换为JS对象?


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

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

1
npm install js-yaml

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
(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

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    Read YAML
                 <script src="//code.jquery.com/jquery-2.1.0.js">
        <script src='/vendor/js/js-yaml.js'>
        <script src='/test/readYaml.js'>
   
</head>
<body>
</body>
</html>

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


js-yaml确实如此。我通过谷歌搜索" node js yaml"发现了这一点,因为从JavaScript中的文件读取是通过node.js(或类似的东西)在服务器端完成的,而不是从浏览器完成的。

js-yaml的自述文件开始

usage: js-yaml [-h] [-v] [-c] [-j] [-t] file

Positional arguments:

file File with YAML document(s)

这是有力的证据,表明它确实直接从文件处理YAML。


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