当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Psych.unsafe_load用法及代码示例


本文简要介绍ruby语言中 Psych.unsafe_load 的用法。

用法

unsafe_load(yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false)
也别名为:load

yaml 加载到 Ruby 数据结构中。如果提供了多个文档,则返回第一个文档中包含的对象。如果在解析时引发任何异常,将在异常消息中使用 filename。如果 yaml 为空,则返回指定的 fallback 返回值,默认为 false

当检测到 YAML 语法错误时引发 Psych::SyntaxError

例子:

Psych.unsafe_load("--- a")             # => 'a'
Psych.unsafe_load("---\n - a\n - b")   # => ['a', 'b']

begin
  Psych.unsafe_load("--- `", filename: "file.txt")
rescue Psych::SyntaxError => ex
  ex.file    # => 'file.txt'
  ex.message # => "(file.txt): found character that cannot start any token"
end

当可选的 symbolize_names 关键字参数设置为真值时,返回 Hash 对象中键的符号(默认值:字符串)。

Psych.unsafe_load("---\n foo: bar")                         # => {"foo"=>"bar"}
Psych.unsafe_load("---\n foo: bar", symbolize_names: true)  # => {:foo=>"bar"}

当 'yaml' 参数为 NilClass 时引发 TypeError

注意:此方法*不应*用于解析不受信任的文档,例如通过用户输入提供的 YAML 文档。相反,请使用加载方法或 safe_load 方法。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Psych.unsafe_load。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。