下载 JS-YAML -YAML 1.2 JavaScript解析器/编写器
JS-YAML -YAML 1.2 JavaScript解析器/编写器

在线演示
这是YAML的实现,YAML是一种对人友好的数据
串行化的语言。它一开始是作为PyYAML端口的
完全重写从零开始。现在它非常快,并且支持1.2规范。
安装
js的YAML模块

npm install js-yaml

CLI可执行 如果你想从CLI检查你的YAML文件,全局安装js-yaml:

npm install -g js-yaml

使用

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

Positional arguments:
file File with YAML document(s) Optional arguments:
-h, --help Show this help message and exit.
-v, --version Show program's version number and exit.
-c, --compact Display errors in compact mode
-t, --trace Show stack trace on error

为浏览器绑定的YAML库 & lt; !——esprima只需要!!js /函数——比; & lt;脚本src = " esprima.js "祝辞& lt; / script> & lt;脚本src = " js-yaml.min.js "祝辞& lt; / script> & lt;脚本type = " text / javascript祝辞 var doc = jsyaml。负载(“问候:你好\ nname:世界”); & lt; / script> 浏览器支持主要用于在线演示。如果你发现任何错误-感觉 免费发送拉请求与修复。还要注意的是,IE和其他老浏览器 运行需要es5垫片。 注: 我们没有资源来支持browserified版本。别指望会是这样 很好的测试。如果出现问题,不要指望快速修复。 ! !默认情况下,js/函数在浏览器捆绑包中不起作用。如果你真的需要 首先加载esprima解析器(通过amd或直接)。 ! !bin在浏览器中会返回数组,因为浏览器不支持 js缓冲区和增加缓冲区垫片是完全没用的实践。 API 这里我们介绍了最有用的方法。如果你需要高级细节(创建 您自己的标记),请参阅wiki和 更多的例子 信息。 const yaml = require('js-yaml'); const fs = require('fs'); //获取文档,或在错误时抛出异常 尝试{ const doc = yaml.safeLoad(fs.readFileSync('/home/ixti/example)yml, use utf8)); console.log (doc); } catch (e) { console.log (e); } safeLoad (string [, options]) 推荐的加载方式。将字符串解析为单个YAML文档。返回一个 普通对象、字符串、数字、null或未定义,或在出错时抛出YAMLException异常。默认情况下, 不支持regexps、函数和未定义。这种方法对于不可信的数据是安全的。 选项: 文件名(默认:null) -用作文件路径的字符串 错误/警告消息。 onWarning(默认值:null) -在警告消息上调用的函数。 对于每个警告,加载器将使用一个YAMLException实例来调用此函数。 schema (default: DEFAULT_SAFE_SCHEMA)——指定要使用的架构。 FAILSAFE_SCHEMA -仅字符串、数组和纯对象: http://www.yaml.org/spec/1.2/spec.html#id2802346 JSON_SCHEMA—所有json支持的类型: http://www.yaml.org/spec/1.2/spec.html#id2803231 CORE_SCHEMA—与JSON_SCHEMA相同: http://www.yaml.org/spec/1.2/spec.html#id2804923 DEFAULT_SAFE_SCHEMA—所有支持的YAML类型,没有不安全的类型 (! !js /未定义,! !js / regexp和! ! js /函数): http://yaml.org/type/ DEFAULT_FULL_SCHEMA—所有支持的YAML类型。 json(默认:false)—与json的兼容性。解析行为。如果为真,则映射中的重复键将覆盖值,而不是抛出错误。 注意:这个函数不理解多文档源,它抛出 在这些例外。 注意:JS-YAML不支持特定于模式的标记解析限制。 因此,在YAML规范中并没有严格定义JSON模式。 它允许数字在任何符号,使用Null和Null作为Null,等等。 核心模式也没有这样的限制。它允许用二进制表示整数。 加载(字符串[,选项]) 小心使用不可信的来源。与safeLoad()相同,但使用 DEFAULT_FULL_SCHEMA默认-添加一些javascript特定类型: ! !js /函数,! !js / regexp和! ! js /未定义。对于不可信的消息来源,您 必须另外验证对象结构以避免注入: const untrusted_code = '"toString": !<”功能(){very_evil_thing();}”'; //我只是在转换字符串,有什么问题吗? 需要(“js-yaml”).load (untrusted_code) +” safeLoadAll(字符串[,迭代器][,选项]) 与safeLoad()相同,但是可以理解多文档源。适用于 如果指定的话,迭代器将返回每个文档,或返回文档数组。 const yaml = require('js-yaml'); yaml。safeLoadAll(data, function (doc)) { console.log (doc); }); loadAll(字符串[,迭代器][,选项]) 与safeLoadAll()相同,但默认使用DEFAULT_FULL_SCHEMA。 safeDump(对象[,选项]) 将对象序列化为YAML文档。使用DEFAULT_SAFE_SCHEMA,所以它会使用 如果试图转储regexp或函数,则抛出异常。然而,您可以 通过将skipInvalid选项设置为true来禁用异常。 选项: 缩进(默认为2)-缩进使用的宽度(空格)。 noArrayIndent(默认:false) -当为真时,将不会给数组元素添加缩进级别 skipInvalid(默认:false)——不要抛出无效类型(如函数) ),并跳过具有此类类型的对和单值。 流级别(默认值:-1)——指定何时进行切换时的嵌套级别 集合的块到流样式。-1表示到处都是block style style - "tag" =>“住在猪圈里勒”地图。每个标签可能有自己的一组样式。 schema (default: DEFAULT_SAFE_SCHEMA)指定要使用的模式。 sortKeys(默认为false)——如果为真,则在转储YAML时对键进行排序。如果一个 函数,使用函数对键进行排序。 线宽(默认值:80)-设置最大线宽。 noRefs(默认为false)——如果为真,不要将重复的对象转换为引用 noCompatMode(默认:false) -如果为真,不要尝试与旧版本兼容 yaml的版本。目前:不要引用“是”、“否”等,这是YAML 1.1所要求的 如果是真流序列将被压缩,省略a、b之间的空格。'[a,b]',省略了key: value之间的空格,并引用了key。如。'{"a":b}'在对漂亮的URL查询params使用yaml时很有用,因为空格是%-编码的。 下表显示了可选的样式。“规范”, “二进制”…)可用于每个标签(例如。! !空,! !int……)。Yaml 输出显示在右侧=>(默认设置)或->

!!null
"canonical" -> "~"
"lowercase" => "null"
"uppercase" -> "NULL"
"camelcase" -> "Null" !!int
"binary" -> "0b1", "0b101010", "0b1110001111010"
"octal" -> "01", "052", "016172"
"decimal" => "1", "42", "7290"
"hexadecimal" -> "0x1", "0x2A", "0x1C7A" !!bool
"lowercase" => "true", "false"
"uppercase" -> "TRUE", "FALSE"
"camelcase" -> "True", "False" !!float
"lowercase" => ".nan", '.inf'
"uppercase" -> ".NAN", '.INF'
"camelcase" -> ".NaN", '.Inf'

例子: safeDump(对象,{ “风格”:{ ”! !null': 'canonical' //转储null为~ }, 'sortKeys': true //对对象键进行排序 }); 转储(对象[,选项]) 与safeDump()相同,但没有限制(默认使用DEFAULT_FULL_SCHEMA)。 支持YAML类型 标准YAML标记和相应的JavaScipt类型的列表。另请参阅 YAML标记讨论和 YAML库类型。

!!null ''                   # null
!!bool 'yes' # bool
!!int '3...' # number
!!float '3.14...' # number
!!binary '...base64...' # buffer
!!timestamp 'YYYY-...' # date
!!omap [ ... ] # array of key-value pairs
!!pairs [ ... ] # array or array pairs
!!set { ... } # array of objects with given keys and null values
!!str '...' # string
!!seq [ ... ] # array
!!map { ... } # object

JavaScript-specific标签

!!js/regexp /pattern/gim            # RegExp
!!js/undefined '' # Undefined
!!js/function 'function () {...}' # Function

警告 注意,在JS-YAML中使用数组或对象作为键。JS不允许对象 方法将数组字符串化(通过调用toString()方法) 现在开始添加它们。 --- 吗?[foo, bar] : -巴兹 吗?{foo: bar} : -巴兹 - - - - - -巴兹 {“foo, bar”:“记者”,“(对象对象)”:[“记者”,“记者”]} 此外,还不支持读取隐式块映射键上的属性。 因此,无法加载以下YAML文档。 和锚foo: foo:酒吧 *锚:复制钥匙 记者:蝙蝠 *锚:复制钥匙 js-yaml为企业 可用的一部分Tidelift订阅 js-yaml和数千个其他包的维护者正在与Tidelift合作,为用于构建应用程序的开放源码依赖项提供商业支持和维护。节省时间、降低风险并改善代码的运行状况,同时向您所使用的依赖项的维护者支付费用。学习更多的知识。本文转载于:http://www.diyabc.com/frontweb/news33292.html

JS-YAML -YAML 1.2 JavaScript解析器/编写器的更多相关文章

  1. javascript解析器原理

    浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. JavaScript解析器工作步骤 1. “找一些东西”: v ...

  2. 浏览器中“JavaScript解析器”工作原理

    浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. JavaScript解析器工作步骤: 1.“找一些东西”: v ...

  3. javascript js获取url及url参数解析

    js获取url及url参数解析 一.获取url: var url=window.location.herf; 二.url参数解析: function GetRequest() { var url = ...

  4. node.js 使用 UglifyJS2 高效率压缩 javascript 文件

    UglifyJS2 这个工具使用很长时间了,但之前都是在 gulp 自动构建 时用到了 UglifyJS 算法进行压缩. 最近玩了一下 UglifyJS2 ,做了一个 在线压缩javascript工具 ...

  5. 小矮人Javascript模块加载器

    https://github.com/miniflycn/webkit-dwarf 短小精悍的webkit浏览器Javascript模块加载器 Why 我们有许多仅基于webkit浏览器开发的应用 无 ...

  6. JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决

    JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...

  7. javascript解析引擎(每天有学习一点篇)

    ======================================================= 有一段时间,经常耳闻web前端的福音,对高性能的V8议论纷纷. 其实对js解析引擎没有深 ...

  8. Js把URL中的参数解析为一个对象

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. RequireJS 是一个JavaScript模块加载器

    RequireJS 是一个JavaScript模块加载器.它非常适合在浏览器中使用, 它非常适合在浏览器中使用,但它也可以用在其他脚本环境, 就像 Rhino and Node. 使用RequireJ ...

随机推荐

  1. kotlin 作用域函数 : let、run、with、apply、 also、takeIf、takeUnless

    1.官方文档 英文: https://kotlinlang.org/docs/reference/scope-functions.html 中文: https://www.kotlincn.net/d ...

  2. Unity调试外部DLL

    1.更改DLL的.csproj工程配置文件,在里面添加如下属性:<PropertyGroup Condition=" '$(OS)' == 'Unix' ">     ...

  3. 【C#】静态构造方法与静态变量

    扯下闲篇先,本来今天预计整理下委托.事件.Lamada的笔记,然后再把单例模式的懒汉.饿汉模式看完. 在看到懒汉的双重加锁设计时,向同桌贩卖了下该设计的优点,结果反被同桌的一个问题难倒了~! 一. 有 ...

  4. unity5打包机制下,一种资源打ab和资源管理的方案

    unity5打包机制下,一种资源打ab和资源管理的方案.1.打ab: 1.设置平台 2.清楚所有资源的assetbundlename: string[] abNameArr = AssetDataba ...

  5. 流光shader 和 流光+扭曲shader

    我认为这种shader能通过简单的方式呈现出不错的效果. 1.流光shader: Shader "Unlit/StreamShader" { //流光shader Properti ...

  6. 数据库系统第六章【关系数据理论】(B站视频)

    目录 数据库系统第六章[关系数据理论](B站视频) 一.前言 二.规范化 函数依赖 三种分类 如何确定函数依赖? 平凡函数依赖vs非平凡函数依赖 完全函数依赖vs部分函数依赖 传递函数依赖 码 超码 ...

  7. [BUUOJ记录] [ZJCTF 2019]NiZhuanSiWei

    考察PHP伪协议+反序列化,都比较简单 进入题目给出源码: <?php $text = $_GET["text"]; $file = $_GET["file&quo ...

  8. eslint prettier vetur eslint

    VScode (版本 1.47.3)安装 eslint prettier vetur 插件 .vue 文件使用 vetur 进行格式化 在文件 .prettierrc 里写 属于你的 pettier ...

  9. .Net在Windows上使用Jenkins做CI/CD的那些事

    背景 最近入职了一家新公司,公司各个方面都让我非常的满意,我也怀着紧张与兴奋的心情入职后,在第一天接到了领导给我的第一个任务——把整个项目的依赖引用重新整理并实施项目的CI/CD. 本篇的重点主要分享 ...

  10. 机器学习,详解SVM软间隔与对偶问题

    今天是机器学习专题的第34篇文章,我们继续来聊聊SVM模型. 我们在上一篇文章当中推导了SVM模型在硬间隔的原理以及公式,最后我们消去了所有的变量,只剩下了\(\alpha\).在硬间隔模型当中,样本 ...