YAMLファイルからJavaScriptにパラメーターを読み取ろうとしています。これを行うのに適したライブラリはありますか?
私はこれらのライブラリを試しました: https://github.com/nodeca/js-yaml および http://code.google.com/p/javascript-yaml-parser/
ただし、どちらのライブラリにも、.ymlファイルまたは.yamlファイルから直接解析するのではなく、文字列として指定された場合にYAMLを解析する関数しかありません。 YAMLをファイルから読み取ってJSオブジェクトに変換するパーサーはありますか?
js-yaml します。 「ノードjs yaml」をグーグルで見つけたのは、JavaScriptでのファイルの読み取りが、ブラウザーからではなく、サーバー側でnode.js(またはそのようなもの)を使用して行われるためです。
README js-yamlの開始)
使用法:js-yaml [-h] [-v] [-c] [-j] [-t]ファイル
位置引数:
yAMLドキュメントを含むファイル
これは、ファイルから直接YAMLを実行することを示す強力な証拠です。
ブラウザから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
Webブラウザーで解析する場合は、解析するyamlファイルをscript
タグにロードし、jsコードを使用してその内容を読み取ると、文字列の結果が得られます。また、nodejs環境でyamlを解析したい場合は、ファイルを直接読み取り、文字列を取得することもできます。これは直接yamlを解析したり、文字列からyamlを解析したりすることによる問題ではないと思います。