这是我的Ruby代码:
require 'yaml'
yaml = YAML.parse(
'''
foo: "hello, world"
'''
)
puts yaml['foo']
我得到了:
NoMethodError: undefined method `[]' for #<Psych::Nodes::Document:0x007f92a4404d98>
这是Ruby 2.1.3
答案 0 :(得分:5)
您应该使用YAML.load
代替YAML.parse
according to documentation来解析YAML。
require 'yaml'
yaml = YAML.load(
'''
foo: "hello, world"
'''
)
puts yaml['foo']
# => hello, world
答案 1 :(得分:4)
是什么让你认为你无法解析YAML?错误消息显示Psych::Nodes::Document
没有[]
方法,而且这是正确的,但事实上您返回 a {{对象而不是异常意味着解析 工作。
您可以在Psych documentation for Psych::Nodes
中详细了解Psych的YAML AST的设计方式及其工作原理。