YAML से JSON

ब्राउज़र में चलता है JSON और डेटा

YAML (मैपिंग, सीक्वेंस, ब्लॉक स्केलर, एंकर और एलियास) पार्स करें और फ़ॉर्मेट किया हुआ JSON पाएँ। गलतियाँ लाइन के साथ बताई जाती हैं।

गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

YAML से JSON कैसे इस्तेमाल करें

  1. YAML कंटेंट पेस्ट करें।
  2. इंडेंटेशन और कई डॉक्यूमेंट कैसे संभाले जाएँ, यह चुनें।
  3. JSON कॉपी करें या डाउनलोड करें।

YAML से JSON की खूबियाँ

  • YAML 1.2 को एंकर, एलियास, मर्ज की और ब्लॉक स्केलर सहित पार्स करता है
  • मल्टी-डॉक्यूमेंट स्ट्रीम को एक ऐरे में जोड़ता है या सिर्फ़ पहला डॉक्यूमेंट रखता है
  • गलतियाँ लाइन, कॉलम और टेक्स्ट के अंश के साथ बताई जाती हैं
  • तारीख़ें और बाइनरी डेटा JSON के लिए सुरक्षित स्ट्रिंग में बदले जाते हैं
  • डुप्लिकेट कीज़ चुपचाप ओवरराइट होने के बजाय अस्वीकार की जाती हैं
  • इंडेंटेशन या मिनिफ़ाइड आउटपुट का विकल्प

YAML से JSON का उदाहरण

CI जॉब परिभाषा को बदलना

इनपुट:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - run: npm test

आउटपुट:

{
  "jobs": {
    "test": {
      "runs-on": "ubuntu-latest",
      "steps": [
        { "run": "npm test" }
      ]
    }
  }
}

YAML से JSON के बारे में अक्सर पूछे जाने वाले सवाल

क्या एंकर, एलियास और मर्ज की समर्थित हैं?

हाँ। एंकर (&name) और एलियास (*name) JSON आउटपुट में सादी वैल्यू में हल कर दिए जाते हैं, इसलिए नतीजे में कोई संदर्भ नहीं बचता।

कई डॉक्यूमेंट (---) होने पर क्या होता है?

डिफ़ॉल्ट रूप से स्ट्रीम के सभी डॉक्यूमेंट एक JSON ऐरे में जोड़ दिए जाते हैं। आप सिर्फ़ पहला डॉक्यूमेंट बदलने का विकल्प भी चुन सकते हैं।

तारीख़ें और बाइनरी वैल्यू कैसे बदली जाती हैं?

JSON में तारीख़ या बाइनरी टाइप नहीं होता, इसलिए टाइमस्टैम्प ISO 8601 स्ट्रिंग बन जाते हैं और !!binary वैल्यू base64 स्ट्रिंग।

मेरा YAML पार्स क्यों नहीं होता?

सबसे आम कारण हैं इंडेंटेशन के लिए टैब का इस्तेमाल, असंगत इंडेंटेशन, कोलन के बाद स्पेस न होना, या डुप्लिकेट कीज़। एरर लाइन और कॉलम बताता है।

तकनीकी नोट्स

पार्सिंग yaml पैकेज के parseAllDocuments से strict mode में, uniqueKeys और merge चालू रखकर होती है: duplicate key और tab indentation सख़्त एरर हैं, लाइन, कॉलम और excerpt सहित; << merge key फैलती हैं, और !foo जैसे unresolved tag warning बनते हैं जबकि वैल्यू स्ट्रिंग रहती है। डिफ़ॉल्ट schema YAML 1.2 core है, इसलिए yes/no/on/off स्ट्रिंग रहते हैं और 010 दशमलव 10 है; %YAML 1.1 directive schema बदलकर दोनों नतीजे बदल देता है।

JSON.stringify से पहले वैल्यू JSON-safe types में बदलती है: !!timestamp ISO 8601 स्ट्रिंग बनता है, !!binary base64 स्ट्रिंग, !!set sequence, !!omap mapping, और .inf/.nan null की जगह ".inf"/".nan" स्ट्रिंग। ग़ैर-स्ट्रिंग key स्ट्रिंग बना दी जाती हैं (null key "" बनती है)। 'billion laughs' payload रोकने के लिए alias expansion हर दस्तावेज़ में 1,000 तक सीमित है, और 2^53 − 1 से बड़े integer precision खो देते हैं क्योंकि bigint parsing चालू नहीं है।