Bỏ qua

Tốt nhất là dùng một YAML Parser Online để kiểm tra.

Dấu liệt kê - phía trước và dấu hai chấm : phía sau sẽ quyết định nhiều thứ

Khi chỉ xét một dòng

- phía trước A : phía sau A Kết quả: A là… YAML JSON
Chuỗi A "A"
Một phần tử của một danh sách - A ["A"]
Thuộc tính của một vật thể A: {"A": null}
Thuộc tính của một vật thể trong một danh sách - A: [{"A": null}]

Khi xét 2 dòng

Trong các đoạn code sau, ở trên là YAML, ở dưới là JSON.

Khi A là chuỗi thì B có là gì thì cũng nằm trong cùng chuỗi với A

Dòng - phía trước : phía sau
A

B không có - phía trước:

A
B

"A B" 

B có - phía trước:
A

- B

"A - B" 

Nếu B có : phía sau thì sẽ ra lỗi.

- A

Khi A chỉ có - phía trước thì A là một phần tử của danh sách.

- B

Dòng - phía trước : phía sau
A
B

Nếu B cũng chỉ có - phía trước thì A với B là các phần tử của một danh sách

- A
- B

[
  "A", 
  "B"
]

- B:

Dòng - phía trước : phía sau
A
B

Nếu B có cả - phía trước và : phía sau thì B là thuộc tính của một vật thể trong cùng danh sách với A (A và {B:} cùng danh sách).

- A
- B:

[
  "A", 
  {
    "B": null
  }
]

B hoặc B: (lỗi)

Dòng - phía trước : phía sau
A
B
## A:
Khi A chỉ có : phía sau thì A là một thuộc tính của một vật thể.
### B (Lỗi)
Dòng - phía trước : phía sau
---- ------------------ ---------------
A
B
A:
B
Lỗi:
ERROR:

while scanning a simple key
  in "<unicode string>", line 2, column 1:
    B
    ^
could not found expected ':'
  in "<unicode string>", line 2, column 2:
    B
     ^
### B:
Dòng - phía trước : phía sau
---- ------------------ ---------------
A
B

Nếu A và B chỉ có : phía sau và đều cùng thẳng hàng với nhau thì A với B đều là thuộc tính của một vật thể:

A:
B:

{
  "A": null, 
  "B": null
}

- B, ··- B

Dòng - phía trước : phía sau
A
B

Nếu B chỉ có - phía trước thì A là một danh sách, B là phần tử của danh sách A

A:

- B

{
  "A": [
    "B"
  ]
}

- B:, ··- B:

Dòng - phía trước : phía sau
A
B
Nếu B có - phía trước và : phía sau, thì A là một danh sách các vật thể, B là thuộc tính của một vật thể trong danh sách đó
A:

- B: 
{
  "A": [
    {
      "B": null
    }
  ]
}
### ··B
Nếu B thụt dòng so với A và không có - lẫn : thì B là giá trị của thuộc tính A.
A:
  B
{
  "A": "B"
}
### ··B:
Nếu B thụt dòng so với A và chỉ có : phía sau thì giá trị của A là một vật thể, và B là thuộc tính của vật thể đó.
A:
  B: 
{
  "A": {
    "B": null
  }
}
## - A:
Nếu A có - phía trước và : phía sau thì A là thuộc tính của một vật thể trong một danh sách.
### B, B:, ··B (lỗi)
### - B
Dòng - phía trước : phía sau
---- ------------------ ---------------
A
B
- A:
- B
[
  {
    "A": null
  },
  "B"
]
### ··B:
Dòng - phía trước : phía sau
---- ------------------ ---------------
A
··B
- A:
  B: 
[
  {
    "A": null, 
    "B": null
  }
]
### ··- B
Dòng - phía trước : phía sau
---- ------------------ ---------------
A
··B
- A:
  - B
[
  {
    "A": [
      "B"
    ]
  }
]
### ··- B:
Dòng - phía trước : phía sau
---- ------------------ ---------------
A
··B
- A:
  - B:
[
  {
    "A": [
      {
        "B": null
      }
    ]
  }
]
# 1
A:
  - B:
    C:
{
  "A": [
    {
      "C": null, 
      "B": null
    }
  ]
}
# 2
A:
  - B:
    - C
{
  "A": [
    {
      "B": [
        "C"
      ]
    }
  ]
}
# 3
A:
  - B:
    - C:
{
  "A": [
    {
      "B": [
        {
          "C": null
        }
      ]
    }
  ]
}