本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。