YAML Array list

An array is a group of similar values with a single name. In YAML, Array represents a single key mapped to multiple values. Each value starts with a hyphen - symbol followed by space.

Here is a syntax for yaml arrays

key1:
  - value1
  - value2
  - value3
  - value4
  - value5

In a single line, write the same thing above using ‘square brackets syntax.’

key1: [value1,value2,value3,value4,value5]

and also equivalent representation using multiple lines

key1: [value1,value2
  value3,value4,value5]

The json representation is as below.

{
  "key1": [
    "value1",
    "value2",
    "value3",
    "value4",
    "value5"
  ]
} 

and without a key, arrays can be represented in single line using square brackets

 [one, two, three, four]

or can also be declared in a single line

- one
- two
- three
- four

Equivalent JSON is for the above arrays

 [
  "one",
  "two",
  "three",
  "four"
]

YAML Arrays of Arrays

Arrays of Arrays are also called multi-dimensional arrays or nested arrays.

use indentation syntax as below.

employees:
    - 
        id: 213
        name: franc
        others:
            - { department: sales, did: 1} 
            - { salary: 5000}
            - { address: USA, pincode: 97845 }

equivalent JSON is

{
  "emloyees": [
    {
      "id": 213,
      "name": "franc",
      "others": [
        {
          "department": "sales",
          "did": 1
        },
        {
          "salary": 5000
        },
        {
          "address": "USA",
          "pincode": 97845
        }
      ]
    }
  ]
}

YAML Arrays of Objects

Objects contain multiple key and value pairs. An array of objects contains an object list.

Here is a code for the YAML array of objects example

one:
  - id: 1
    name: franc
  - id: 11
    name: Tom

The same above can be YAML equivalent of the array of objects example as follows

{
  "one": [
    {
      "id": 1,
      "name": "franc"
    },
    {
      "id": 11,
      "name": "Tom"
    }
  ]
}

Arrays of String in YAML

Strings contain a group of characters. It is a scalar type in yaml.

Keys in the string array are optional in YAML. Here is an example of an array of strings with keys.

numbers: [
  one,
  two,
  three,
  four
]

Here is an example array of strings without key

[
  one,
  two,
  three,
  four
]

Arrays of numbers in YAML

Numbers are predefined scalar types in yaml. It accepts integer or floating numbers.

An array of numbers or mixed numbers also can be represented as follows

numbers: [
  1,
  2,
  3,
  4
]

An array of Numbers with floating values combined with mixed types example as follows

floatvalues: [
  1.3,
  2.2,
  3,
  4
]

dictionary in yaml

the dictionary contains keys and values.

In Yaml Dictionary can be represented in two syntaxes

  • Flow mapping
  • Block mapping

Flow mapping dictionary:

In this, key and value pairs are separated by a comma and entire pairs are enclosed in {} characters.

Here is a syntax for Dictionary Flow Mapping

# dictionary
  mysqldatabase":{
    hostname: localhost,
    port: 3012,username:root,   
    password: root
    }

Block mapping Dictionary: In this key and value pairs are represented using colon : Syntax

Following is an example of dictionary Block mapping types of data.

# dictionary
  mysqldatabase:
    hostname: localhost
    port: 3012
    username: root
    password: root

Equivalent JSON is

{
  "mysqldatabase": {
    "hostname": "localhost",
    "port": 3012,
    "username": "root",
    "password": "root"
  }
}

How do you create an empty Dictionary in yaml

{} denotes an empty dictionary for flow mapping syntax in yaml. Here is an example

employee: {}

null denotes an empty dictionary for block mapping syntax in yaml. Here is an example

employee: null

How do you create an empty array in yaml

[] denotes an empty array in yaml.

the empty array defined using a key is a variable of type string,value is an empty array like below

array:[]

create an empty sequence

An empty sequence declared below

myvalue:""

Another way

myvalue:[]