[yaml] YAML 다중 라인 어레이

YAML 에서는 여러 줄 문자열을 쉽게 만들 수 있습니다 . 그러나 |문자 를 사용하여 여러 줄 배열 (주로 구성 파일 내에서 읽기 쉽도록)을 만드는 기능을 원합니다 .

YAML 배열 은 다음과 같이 나타낼 수 있습니다 ['key1', 'key2', 'key3'].

YAML 시퀀스 는 대시와 공백, 문자열을 사용합니다.

- String1
- String2
- String3

이것은 다음과 같이 평가됩니다 ['string1', 'string2', 'string3']..

YAML 매핑 은 YAML 에서 항상 볼 수있는 키 및 값 쌍의 배열입니다.

Key1: string1
Key2: string2
Key3: string3

이것은 모두 좋고 훌륭하지만, 나는 멀티 라인 배열을 수행하는 방법을 볼 수 없습니다. 이 같은:

|
['string1', 'string2', 'string3']
['string4', 'string5', 'string6']

YAML에서 여러 배열 매핑을 만들고 선택한 프로그래밍 언어로 병합하는 데 부족한 경우 { }Python 과는 달리 YAML에서 멀티 라인 배열을 달성 할 수있는 방법이 있습니까?



답변

YAML의 시퀀스 이다 어레이 . 이것이 올바른 표현 방법입니다.

key:
  - string1
  - string2
  - string3
  - string4
  - string5
  - string6

이는 다음과 같은 의미로 동일합니다.

key: ['string1', 'string2', 'string3', 'string4', 'string5', 'string6']

한 줄 배열을 여러 줄로 나누는 것도 합법적입니다.

key: ['string1', 'string2', 'string3',
  'string4', 'string5',
  'string6']

단일 행 배열에 여러 줄 문자열이 있습니다.

key: ['string1', 'long
  string', 'string3', 'string4', 'string5', 'string6']


답변

이것을 시도 했습니까?

-
  name: Jack
  age: 32
-
  name: Claudia
  age: 25

나는 이것을 얻는다 : [{"name"=>"Jack", "age"=>32}, {"name"=>"Claudia", "age"=>25}](나는 YAMLRuby 클래스를 사용한다 ).


답변

다음과 같이 작동합니다.

myarray: [
  String1, String2, String3,
  String4, String5, String5, String7
]

snakeyaml 구현을 사용하여 테스트했지만 다른 구현에 대해서는 잘 모르겠습니다.


답변

다음은 배열 요소 값이 작을 때 가독성 관점에서 나와 저에게 효과적입니다.

key: [string1, string2, string3, string4, string5, string6]

참고 : 사용 된 snakeyaml 구현


답변

필요한 것이 배열의 배열이면 다음과 같이 할 수 있습니다.

key:
  - [ 'value11', 'value12', 'value13' ]
  - [ 'value21', 'value22', 'value23' ]


답변