Ruby版本:ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-darwin13.4.0]
我正在阅读“开始红宝石”一书,并坚持将YAML数据转换回工作对象。 (值得一提的是,将工作对象转换为YAML数据工作正常)
请参阅代码打击:
require 'yaml'
class Person
attr_accessor :name, :age
end
yaml_string = <<END_OF_DATA
---
- !ruby/object:Person
age: 45
name: Jimmy
- !ruby/object:Person
age: 23
name: Laura Smith
END_OF_DATA
发生错误
2.0.0-p576 :013"> END_OF_DATA
=> "---\n- !ruby/object:Person\nage: 45\nname: Jimmy\n- !ruby/object:Person\nage: 23\nname: Laura Smith\n"
2.0.0-p576 :014 > test_data = YAML::load(yaml_string)
Psych::SyntaxError: (<unknown>): did not find expected '-' indicator while parsing a block collection at line 2 column 1
我做了一些研究,直觉上,我认为这个链接click here正在说明这个问题。但是,由于我的“幼儿园”级别的红宝石语言,我不知道他们在谈论什么。希望有人能帮助我解决这个问题并完全理解它。提前谢谢!
答案 0 :(得分:3)
你错过了一些缩进。 YML不是与空白无关的。请尝试使用此数据:
yaml_string = <<END_OF_DATA
---
- !ruby/object:Person
age: 45
name: Jimmy
- !ruby/object:Person
age: 23
name: Laura Smith
END_OF_DATA