JavaScript YAML Parser

Tom*_*Tom 42 html javascript parsing yaml

我正在寻找一个JavaScript YAML解析器,它将YAML转换为HTML页面中可用的东西.我在Github上试过这个版本(https://github.com/visionmedia/js-yaml),但它看起来只适用于node.js

我应该使用哪些库,是否有示例代码来显示示例用法?

Vit*_*aly 32

JS-YAML解析器在浏览器中工作.这是在线演示http://nodeca.github.com/js-yaml/.虽然,它的主要目标是node.js,浏览器版本只是为了好玩:)

  • 显然有一些[Safari和某些版本的IE的问题](https://github.com/nodeca/js-yaml/issues/21) - 它在最近的Firefox中对我有用.似乎问题只是跨多种旧浏览器类型的典型Javascript(例如,未在Safari/IE中实现Array.isArray). (2认同)

小智 27

这是我发现的一个.不确定这个规格有多少,但它符合我的需求.

https://github.com/jeremyfa/yaml.js

  • JS-YAML听起来像维护者不打算用于浏览器.我读到这是"避免,避免".他们说自己 - 不要指望支持或修复. (3认同)
  • 更新: http://nodeca.github.com/js-yaml/ (接受的答案)和 https://github.com/jeremyfa/yaml.js (这个答案)似乎都有效并且具有 @FloLedermann 描述的功能(除非您需要“js/function”架构检查)。前者——公认的答案——目前有更多的最新活动和更多的明星。 (2认同)

小智 25

对不起回答一个旧帖子,但我遇到了和你一样的问题.

没有任何javascript YAML解析器满足我的需求,所以我开发了自己的:它可以在这里找到:http://code.google.com/p/javascript-yaml-parser/

希望它有助于某人:)

Cumps,Diogo

  • +1.你在js-yaml找不到什么功能?https://github.com/visionmedia/js-yaml(顺便说一下,似乎有人分叉了js-yaml,并增加了对字符串文字的支持,https://github.com/mcantelon/js-yaml/commit/ a09a560413526c1dfc984b08513b7630a0e72613) (3认同)
  • 这个库没有使用嵌套列表在我的测试文件上工作,https://github.com/jeremyfa/yaml.js上的那个工作正常并且也是无依赖的 (2认同)

nic*_*ico 5

js-yaml在OSX上的Safari,Chrome和Firefox中运行良好.这是一个例子:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Test js-yaml</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="./js-yaml/dist/js-yaml.min.js"></script>
    <script type="text/javascript">

        // YAML string to Javascript object
        var obj = jsyaml.load( 'greeting: hello\nname: world' );
        console.log( obj );

        // YAML file to Javascript object
        $.get( 'https://raw.githubusercontent.com/nodeca/js-yaml/c50f9936bd1e99d64a54d30400e377f4fda401c5/benchmark/samples/document_application2.yaml', function( data ) {
            var obj = jsyaml.load( data );
            console.log( obj );
        });

        // Huge YAML file (7.2 MB) to Javascript object
        $.get( 'https://raw.githubusercontent.com/nodeca/js-yaml/master/benchmark/samples/document_huge.yaml', function( data ) {
            var obj = jsyaml.load( data );
            console.log( obj );
        });

    </script>
</head>
<body>
<h1>Test js-yaml</h1>
<p><a href="https://github.com/nodeca/js-yaml">https://github.com/nodeca/js-yaml</a></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)