YAML-흐름 스타일

YAML의 흐름 스타일은 객체 인스턴스를 만들기 위해 앵커와 별칭을 사용하는 더 읽기 쉬운 기능을 위해 접는 콘텐츠 줄을 포함하는 JSON의 자연스러운 확장으로 생각할 수 있습니다. 이 장에서는 다음 개념의 흐름 표현에 초점을 맞출 것입니다.

  • 별칭 노드
  • 빈 노드
  • Flow Scalar 스타일
  • 흐름 수집 스타일
  • 흐름 노드

별칭 노드의 예는 다음과 같습니다.

%YAML 1.2
---
!!map {
   ? !!str "First occurrence"
   : &A !!str "Foo",
   ? !!str "Override anchor"
   : &B !!str "Bar",
   ? !!str "Second occurrence"
   : *A,
   ? !!str "Reuse anchor"
   : *B,
}

위에 주어진 코드의 JSON 출력은 다음과 같습니다.

{
   "First occurrence": "Foo", 
   "Second occurrence": "Foo", 
   "Override anchor": "Bar", 
   "Reuse anchor": "Bar"
}

내용이 비어있는 노드는 빈 노드로 간주됩니다. 다음 예제는 이것을 보여줍니다-

%YAML 1.2
---
!!map {
   ? !!str "foo" : !!str "",
   ? !!str "" : !!str "bar",
}

JSON에서 빈 노드의 출력은 다음과 같이 표시됩니다.

{
   "": "bar", 
   "foo": ""
}

흐름 스칼라 스타일에는 큰 따옴표, 작은 따옴표 및 일반 형식이 포함됩니다. 동일한 기본 예는 다음과 같습니다.

%YAML 1.2
---
!!map {
   ? !!str "implicit block key"
   : !!seq [
      !!map {
         ? !!str "implicit flow key"
         : !!str "value",
      }
   ]  
}

위의 예제에 대한 JSON 형식의 출력은 다음과 같습니다.

{
   "implicit block key": [
      {
         "implicit flow key": "value"
      }
   ] 
}

YAML의 흐름 컬렉션은 다른 흐름 컬렉션 내의 블록 컬렉션과 중첩됩니다. 흐름 수집 항목은 다음으로 종료됩니다.comma (,) 표시기. 다음 예제는 흐름 수집 블록을 자세히 설명합니다.

%YAML 1.2
---
!!seq [
   !!seq [
      !!str "one",
      !!str "two",
   ],
   
   !!seq [
      !!str "three",
      !!str "four",
   ],
]

JSON의 흐름 수집에 대한 출력은 다음과 같습니다.

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

JSON과 같은 흐름 스타일에는 시작 및 종료 표시기가 포함됩니다. 속성이없는 유일한 흐름 스타일은 일반 스칼라입니다.

%YAML 1.2
---
!!seq [
!!seq [ !!str "a", !!str "b" ],
!!map { ? !!str "a" : !!str "b" },
!!str "a",
!!str "b",
!!str "c",]

JSON 형식으로 위에 표시된 코드의 출력은 다음과 같습니다.

[
   [
      "a", 
      "b"
   ], 
   
   {
      "a": "b"
   }, 
   
   "a", 
   "b", 
   "c"
]