2016-06-20 14 views
5

이것은 매우 구체적이지만 저에게 곤란을 겪습니다. 우리는 구문 분석에 중첩 된 키 + 일반 배열이 거의 같은 치료 - 필요할 때 가끔 다음과 같이 추가 정보를 추가 :YAML 여러 줄 문자열 : 키 대 배열 값

{ 
    "Entry 2": [ 
    "lorem", 
    { 
     "ipsum": true 
    }, 
    "dolor" 
    ], 
    "Entry 1": [ 
    { 
     "lorem": true 
    }, 
    "ipsum", 
    "dolor" 
    ] 
} 

모든 시원하고 고급 : 저에게이 JSON을 제공

--- 
Entry 1: 
    - lorem: 
     true 
    - ipsum 
    - dolor 
Entry 2: 
    - lorem 
    - ipsum: 
     true 
    - dolor 
... 

.... 로,

--- 
#works: 

Test: 
    - lorem 
    - ipsum 
    - dolor 
? |- 
    multiline 
    Test 
: 
    - lorem 
    - ipsum: 
     true 
    - dolor 
... 

뿐만 아니라 제 2 레벨 배열 작업에 깊은 여러 문자열을가는 : (Online YAML Parser에 그 또는 참조 할 다른 컴파일러 붙여 넣기 유지)가 메시를 얻을 수 있지만, 여전히 같은 작품을 좋아 콘텐츠를 여러 줄 문자열을 입력 사양에 의해 예상 :

--- 
#works: 
Test: 
    - |- 
     multiline 
     lorem 
    - ipsum 
    - dolor 
? |- 
    multiline 
    Test 
: 
    - lorem 
    - ipsum: 
     true 
    - dolor 
... 

Wohoo! 그러나 최대한 빨리 혼합 다중 회선 키와 멀티 라인 어레이 문자열 같은 수준에서, 내 설치 나누기로 :

--- 
#breaks: 
Test: 
    - |- 
     multiline 
     lorem 
    ? |- 
     multiline 
     ipsum 
    : 
     true 
? |- 
    multiline 
    Test 
: 
    - lorem 
    - ipsum: 
     true 
    - dolor 
... 

어떻게 그 문제를 해결하기 위해?

답변

7

동일한 레벨에서 키와 배열 항목을 혼합하면 YAML이 중단됩니다. 다음과 같이 여러 줄 문자열을 사용할 필요가 없습니다.

- 1 
? 2 
: 3 

이 구문 분석은 어떻게해야합니까? 배열? 매핑? 그러나 이것은 작동합니다

- 1 
- ? 2 
    : 3 

그래서 당신은이처럼 YAML을 수정할 수 있습니다

--- 
Test: 
    - |- 
     multiline 
     lorem 
    - ? |- 
      multiline 
      ipsum 
     : 
     true 
? |- 
    multiline 
    Test 
: 
    - lorem 
    - ipsum: 
     true 
    - dolor 
... 
+0

이 문제에 저를 교육 주셔서 너무 감사합니다! – Paracetamol