为什么我在将 YAML 数据转换回工作对象时得到 Psych::SyntaxError
Why i'm getting Psych::SyntaxError while translating YAML data back into working objects
Ruby 版本:ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-darwin13.4.0]
我正在阅读 "beginning ruby" 本书,但一直无法将 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
我做了一些研究,直觉上,我认为这个 link click here 说的是关于这个问题的一些事情。但是,由于我 "kindergarten" 的 ruby 语言水平,我不知道他们在说什么。希望有人能帮我解决这个问题并完全理解它。提前致谢!
您缺少一些缩进。 YML 不是白人 space 不可知论者。尝试改用此数据:
yaml_string = <<END_OF_DATA
---
- !ruby/object:Person
age: 45
name: Jimmy
- !ruby/object:Person
age: 23
name: Laura Smith
END_OF_DATA
Ruby 版本:ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-darwin13.4.0]
我正在阅读 "beginning ruby" 本书,但一直无法将 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
我做了一些研究,直觉上,我认为这个 link click here 说的是关于这个问题的一些事情。但是,由于我 "kindergarten" 的 ruby 语言水平,我不知道他们在说什么。希望有人能帮我解决这个问题并完全理解它。提前致谢!
您缺少一些缩进。 YML 不是白人 space 不可知论者。尝试改用此数据:
yaml_string = <<END_OF_DATA
---
- !ruby/object:Person
age: 45
name: Jimmy
- !ruby/object:Person
age: 23
name: Laura Smith
END_OF_DATA