我们如何在yml中创建一个包含2个属性的数组?

时间:2016-12-16 06:16:24

标签: ruby yaml

我们如何在yml中创建一个包含2个属性的数组?

例如: 一系列员工。每位员工都有2个属性,姓名和年龄

employee:
-name : emp1
 age : 20
-name :emp1
 age : 20

这是对的吗?

最后我想在ruby中返回它

def readEmployees
        [
            {name: 'emp1', age: '20'},
            {name: 'emp2', age: '30'},
        ]
 end

2 个答案:

答案 0 :(得分:1)

我不打算给一个人喂鱼,而是要给他一辈子喂他。您想知道如何在yaml中呈现结构?检查一下:

inp = [
  {name: 'emp1', age: '20'},            
  {name: 'emp2', age: '30'},            
]          
inp.to_yaml
#⇒ "---\n- :name: emp1\n  :age: '20'\n- :name: emp2\n  :age: '30'\n"

对于读者来说,上面的yaml是:

---
- :name: emp1
  :age: '20'
- :name: emp2
  :age: '30'

答案 1 :(得分:0)

此:

employee:
-name : emp1
 age : 20
-name :emp1
 age : 20

不正确YAML。有两个原因:

  • 您没有在指示序列元素的短划线后插入空格
  • 你没有在冒号之后插入一个空格,在emp1之前插入第二个元素(除非你引用了标量,否则总是需要{"name":"emp1"}

在冒号+空格之前插入空格以将键与映射中的值分开是不习惯的:

employee:
- name: emp1
  age: 20
- name: emp1
  age: 20

你还应该注意到YAML中没有数组这样的东西,也没有属性。 YAML序列可能在Ruby中表示为数组,您的属性是属于映射的YAML键值对。