2016-06-20 5 views
5

यह बहुत विशिष्ट है लेकिन मुझे स्टंप छोड़ दिया गया है। हम नेस्टेड कुंजी + नियमित सरणियों लगभग पार्स पर एक ही इलाज - कभी कभी अतिरिक्त जानकारी जोड़ने जब जरूरत, इस तरह:वाईएएमएल मल्टी-लाइन तार: कुंजी बनाम सरणी मान

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

... जो मुझे इस JSON देता है:

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

सभी शांत और ठीक। सामग्री के लिए यह मेसियर हो जाता है, लेकिन अभी भी इस तरह ठीक काम करता है बहु तार में प्रवेश कर (Online YAML Parser करने के लिए उन या संदर्भ के लिए कुछ अन्य संकलक चिपकाने रखने के लिए): के रूप में

--- 
#works: 

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

रूप में अच्छी तरह मेरी 2nd स्तर सरणी काम में, गहरी जा रहा बहु तार, spec द्वारा अपेक्षित:

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

वाहू! लेकिन जैसे ही मैं मिश्रण बहु लाइन एक ही स्तर पर कुंजी और बहु ​​लाइन सरणी तार, मेरे सेटअप टूट जाता है के रूप में:

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

कैसे तय करने के लिए?

उत्तर

7

यदि आप कुंजी और सरणी वस्तुओं को उसी स्तर पर मिश्रित करते हैं तो वाईएएमएल टूट जाता है। इसके लिए आपको मल्टी-लाइन स्ट्रिंग की आवश्यकता नहीं है:

- 1 
? 2 
: 3 

इस पार्स को क्या करना चाहिए? एक सरणी? मैपिंग लेकिन यह काम करता है:

- 1 
- ? 2 
    : 3 

तो तुम इस तरह अपने YAML ठीक कर सकते हैं:

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

आप इस मामले पर मुझे शिक्षित करने के लिए बहुत बहुत धन्यवाद! – Paracetamol

संबंधित मुद्दे