本文简要介绍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 Psych.parse用法及代码示例
- Ruby Psych.dump用法及代码示例
- Ruby Psych.parse_stream用法及代码示例
- Ruby Psych.dump_stream用法及代码示例
- Ruby Psych.safe_load用法及代码示例
- Ruby Psych.load_stream用法及代码示例
- Ruby Psych.safe_dump用法及代码示例
- Ruby Psych模块用法及代码示例
- Ruby PrettyPrint.current_group用法及代码示例
- Ruby Pathname.<=>用法及代码示例
- Ruby Pathname.children用法及代码示例
- Ruby Process.groups用法及代码示例
- Ruby Process.wait2用法及代码示例
- Ruby Process.getpgrp用法及代码示例
- Ruby Proc.eql?用法及代码示例
- Ruby PTY.open用法及代码示例
- Ruby PrettyPrint.genspace用法及代码示例
- Ruby PKey.sign_raw用法及代码示例
- Ruby Profiler模块用法及代码示例
- Ruby Process.setproctitle用法及代码示例
- Ruby PPMethods.comma_breakable用法及代码示例
- Ruby Process.setrlimit用法及代码示例
- Ruby Proc.prc ==用法及代码示例
- Ruby Profiler.raw_data用法及代码示例
- Ruby Process.uid用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Psych.unsafe_load。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。