我正在尝试将YAML文件中的参数读入Javascript。有没有好的图书馆呢?
我已尝试过这些库:https://github.com/nodeca/js-yaml和http://code.google.com/p/javascript-yaml-parser/
但是这两个库只有在将YAML作为字符串给出时解析YAML的函数,而不是直接从.yml或.yaml文件解析。是否有任何解析器从文件中读取YAML并将它们转换为JS对象?
答案 0 :(得分:10)
js-yaml。我通过Googling“node js yaml”找到了这个,因为读取JavaScript中的文件是在服务器端使用node.js(或类似的东西)完成的,而不是从浏览器中读取。
js-yaml的README开始
用法:js-yaml [-h] [ - v] [-c] [-j] [-t]文件
位置参数:
带有YAML文档的文件
这是非常强有力的证据,表明 直接从文件中处理YAML。
答案 1 :(得分:10)
似乎很难找到一个从浏览器中使用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
答案 2 :(得分:1)
如果要在Web浏览器中解析它,可以加载要在script
标记中解析的yaml文件,并使用js代码读取内容,这将为您提供字符串结果。如果你想在nodejs环境中解析yaml,你可以直接读取文件并获得字符串。我不认为这是直接解析yaml或从字符串解析yaml的问题。