本文簡要介紹ruby語言中 Psych.safe_load
的用法。
用法
safe_load(yaml, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false)
在 yaml
中安全地加載 yaml 字符串。默認情況下,隻允許反序列化以下類:
默認情況下不允許遞歸數據結構。可以通過將這些類添加到permitted_classes
關鍵字參數來允許任意類。它們是添加劑。例如,要允許 Date
反序列化:
Psych.safe_load(yaml, permitted_classes: [Date])
現在除了上麵列出的類之外,還可以加載 Date
類。
通過更改aliases
關鍵字參數可以顯式允許別名。例如:
x = []
x << x
yaml = Psych.dump x
Psych.safe_load yaml # => raises an exception
Psych.safe_load yaml, aliases: true # => loads the aliases
如果 yaml 包含不在 permitted_classes
列表中的類,則會引發 Psych::DisallowedClass
異常。
如果 yaml 包含別名但 aliases
關鍵字參數設置為 false,則會引發 Psych::BadAlias
異常。
如果在解析時引發任何異常,將在異常消息中使用 filename
。
當可選的 symbolize_names
關鍵字參數設置為真值時,返回 Hash
對象中鍵的符號(默認值:字符串)。
Psych.safe_load("---\n foo: bar") # => {"foo"=>"bar"}
Psych.safe_load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"}
相關用法
- Ruby Psych.safe_dump用法及代碼示例
- Ruby Psych.parse用法及代碼示例
- Ruby Psych.unsafe_load用法及代碼示例
- Ruby Psych.dump用法及代碼示例
- Ruby Psych.parse_stream用法及代碼示例
- Ruby Psych.dump_stream用法及代碼示例
- Ruby Psych.load_stream用法及代碼示例
- 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.safe_load。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。