web-dev-qa-db-ja.com

JavaScriptでのYAMLファイルからの読み取り

YAMLファイルからJavaScriptにパラメーターを読み取ろうとしています。これを行うのに適したライブラリはありますか?

私はこれらのライブラリを試しました: https://github.com/nodeca/js-yaml および http://code.google.com/p/javascript-yaml-parser/

ただし、どちらのライブラリにも、.ymlファイルまたは.yamlファイルから直接解析するのではなく、文字列として指定された場合にYAMLを解析する関数しかありません。 YAMLをファイルから読み取ってJSオブジェクトに変換するパーサーはありますか?

11
nsax91

js-yaml します。 「ノードjs yaml」をグーグルで見つけたのは、JavaScriptでのファイルの読み取りが、ブラウザーからではなく、サーバー側でnode.js(またはそのようなもの)を使用して行われるためです。

README js-yamlの開始)

使用法:js-yaml [-h] [-v] [-c] [-j] [-t]ファイル

位置引数:

yAMLドキュメントを含むファイル

これは、ファイルから直接YAMLを実行することを示す強力な証拠です。

13
Ray Toal

ブラウザから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

11
wolfstevent

Webブラウザーで解析する場合は、解析するyamlファイルをscriptタグにロードし、jsコードを使用してその内容を読み取ると、文字列の結果が得られます。また、nodejs環境でyamlを解析したい場合は、ファイルを直接読み取り、文字列を取得することもできます。これは直接yamlを解析したり、文字列からyamlを解析したりすることによる問題ではないと思います。

1
cattail