UltKit
इमेज11
PDF13
डॉक्यूमेंट और डेटा7
वीडियो6
ऑडियो4
और टूल्स22

JSON से YAML कन्वर्टर

JSON को ऐसे YAML में बदलें जिसे लोग आसानी से पढ़ सकें, रिव्यू कर सकें और उसमें कमेंट जोड़ सकें। .json फ़ाइलें अपलोड करें और इंडेंटेड .yaml पाएँ, जिसमें वही कीज़, वैल्यू और क्रम रहता है। इसे सीधे अपनी रिपॉज़िटरी में रखा जा सकता है।

डेटा कन्वर्टर

या CSV, TSV, TXT … फ़ाइलें यहाँ ड्रop करें ·

प्रति फ़ाइल अधिकतम 95 MB· अधिकतम 20 फ़ाइलें· 30 मिनट बाद हटा दी जाती हैं

आउटपुट

फ़ाइलें हमारे सर्वर पर प्रोसेस होती हैं और 30 मिनट बाद हटा दी जाती हैं।

इस टूल का उपयोग कैसे करें

  1. 1

    JSON फ़ाइलें जोड़ें

    API रिस्पॉन्स, एक्सपोर्ट की गई सेटिंग या जनरेट किए गए मैनिफ़ेस्ट को .json के रूप में अपलोड करें, ज़्यादा से ज़्यादा 20 फ़ाइलें, हर एक 95 MB तक। हर फ़ाइल में एक वैध JSON वैल्यू होनी चाहिए।

  2. 2

    डिफ़ॉल्ट सेटिंग रहने दें

    इसमें बदलें में YAML पहले से चुना हुआ है। कॉन्फ़िग फ़ाइल के लिए कुछ और बदलने की ज़रूरत नहीं; आउटपुट में दो स्पेस का इंडेंटेशन होता है।

  3. 3

    कन्वर्ट करें और कमिट करें

    YAML में बदलें दबाएँ, .yaml फ़ाइलें डाउनलोड करें, जहाँ अगले पढ़ने वाले को ज़रूरत पड़े वहाँ कमेंट जोड़ें और कमिट कर दें।

उत्तर

JSON को YAML में कैसे बदलें?

.json फ़ाइल अपलोड करें और YAML में बदलें दबाएँ। ऑब्जेक्ट इंडेंट किए हुए key: value ब्लॉक बन जाते हैं, ऐरे डैश वाली लिस्ट बनते हैं, और जिन स्ट्रिंग को YAML ग़लत पढ़ सकता है उनके कोट बने रहते हैं।

कॉन्फ़िग फ़ाइलों के लिए JSON को YAML में क्यों बदलें

ज़्यादातर JSON सॉफ़्टवेयर बनाता है: API रिस्पॉन्स, सेटिंग एक्सपोर्ट, किसी जनरेटर का आउटपुट। ज़्यादातर YAML को इंसान संभालते हैं। यह कन्वर्शन अक्सर उस मोड़ को दिखाता है जब डेटा मशीन का आउटपुट नहीं रहता और ऐसी चीज़ बन जाता है जिसकी ज़िम्मेदारी टीम की होती है, जैसे Git में रखा डिप्लॉयमेंट मैनिफ़ेस्ट, CI पाइपलाइन या Ansible वैरिएबल का सेट।

एक आम स्थिति: आप क्लाउड API कॉल करते हैं, किसी रिसोर्स का 200 लाइन का JSON विवरण मिलता है, और उसे इन्फ्रास्ट्रक्चर कोड के रूप में रखना है। कन्वर्ट करने पर बिना ब्रेस और कॉमा की फ़ाइल मिलती है, जहाँ एक लाइन के बदलाव से एक लाइन का डिफ़ बनता है और अजीब वैल्यू को कमेंट में समझाया जा सकता है। यही टेस्ट फ़िक्स्चर और उन ट्रांसलेशन फ़ाइलों पर भी लागू होता है जिन्हें नॉन-डेवलपर एडिट करते हैं। जब स्प्रेडशीट या रिपोर्ट के लिए फ़्लैट टेबल चाहिए, तब JSON से CSV बेहतर रहता है।

वे टूल जिनकी कॉन्फ़िग फ़ाइलें YAML में होती हैं

कन्वर्ट किया गया YAML आमतौर पर कहाँ इस्तेमाल होता है
संस्थाआवश्यकतास्रोत
GitHub Actionsवर्कफ़्लो .github/workflows में .yml या .yaml फ़ाइलों के रूप में रहते हैंGitHub Docs
GitLab CI/CDपाइपलाइन रिपॉज़िटरी की रूट में .gitlab-ci.yml में तय होती हैGitLab Docs
Docker Composeसर्विस compose.yaml (पहले docker-compose.yml) में बताई जाती हैंDocker Docs
Ansibleप्लेबुक और वैरिएबल फ़ाइलें YAML में लिखी जाती हैंAnsible Docs
Kubernetesमैनिफ़ेस्ट JSON या YAML मानते हैं; डॉक्यूमेंटेशन और Helm चार्ट YAML इस्तेमाल करते हैंKubernetes

मुश्किल वैल्यू के साथ JSON से YAML का उदाहरण

{"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"} का YAML आउटपुट
# "NO" कोट में है, ताकि YAML इसे false न पढ़े
name: api
version: "1.10"
debug: false
tags:
  - web
  - eu
country: "NO"

YAML से क्या मिलता है

  • # से कमेंट
  • कोड रिव्यू में छोटे डिफ़
  • ज़्यादातर लाइनों में ब्रेस, कॉमा या कोट नहीं
  • | ब्लॉक स्केलर से मल्टी-लाइन टेक्स्ट

किन बातों का ध्यान रखें

  • इंडेंटेशन का ही मतलब होता है, इसलिए एक फ़ालतू स्पेस ढाँचा बदल देता है
  • इंडेंटेशन के लिए टैब की अनुमति नहीं है
  • बिना कोट की स्ट्रिंग संख्या या बूलियन की तरह पढ़ी जा सकती है
  • JSON के मुक़ाबले धीमे और कम एकसमान पार्सर

यह उदाहरण दिखाता है कि ब्रेस को बस ढूँढकर बदल देना काफ़ी क्यों नहीं है। वर्शन 1.10 JSON में स्ट्रिंग है; YAML में बिना कोट लिखने पर इसे संख्या 1.1 पढ़ा जाएगा। NO, यानी नॉर्वे का ISO कोड, PyYAML जैसे YAML 1.1 पार्सर में false पढ़ा जाएगा। दोनों के कोट बने रहते हैं, जबकि असली संख्याएँ और बूलियन बिना कोट के रहते हैं।

JSON और YAML की तुलना

JSON

JavaScript ऑब्जेक्ट नोटेशन

JSON संरचित डेटा के लिए हल्का टेक्स्ट फ़ॉर्मैट है, जिसे 2000 के दशक की शुरुआत में Douglas Crockford ने लोकप्रिय बनाया और जो RFC 8259 और ECMA-404 के रूप में मानकीकृत है। यह ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, बूलियन और null को सरल, पढ़ने योग्य सिंटैक्स में दिखाता है। लगभग हर प्रोग्रामिंग भाषा में वेब API, कॉन्फ़िगरेशन फ़ाइलों और ऐप्स के बीच डेटा के आदान-प्रदान का यह डिफ़ॉल्ट फ़ॉर्मैट है। इसमें कमेंट, तारीख़ें या स्कीमा बिल्ट-इन नहीं होते, और बड़ी नेस्टेड फ़ाइलें व्यूअर के बिना पढ़ना कठिन होता है।

कंप्रेशन
–
ट्रांसपेरेंसी (पारदर्शिता)
–
एनिमेशन
–
शुरुआत का वर्ष
2001 · Douglas Crockford
JSON कन्वर्टर

YAML

YAML

YAML ("YAML Ain't Markup Language") एक इंसानों के पढ़ने लायक डेटा फ़ॉर्मेट है, जो पहली बार 2001 में जारी हुआ। यह ब्रैकेट की जगह इंडेंटेशन इस्तेमाल करता है, कमेंट सपोर्ट करता है और JSON का सुपरसेट है। इसका व्यापक उपयोग Docker Compose, Kubernetes, GitHub Actions और कई ऐप्लिकेशन की कॉन्फ़िगरेशन में होता है। व्हाइटस्पेस पर निर्भर होने के कारण एक गलत जगह लगा स्पेस इसे तोड़ सकता है, और "no" या तारीख़ जैसे कुछ मान अनपेक्षित रूप से समझे जा सकते हैं।

कंप्रेशन
–
ट्रांसपेरेंसी (पारदर्शिता)
–
एनिमेशन
–
शुरुआत का वर्ष
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML कन्वर्टर

लोग JSON को YAML में तब बदलते हैं जब जनरेट किया गया या API का डेटा ऐसी कॉन्फ़िग फ़ाइल बनना हो जिसे इंसान संभालें, पुल रिक्वेस्ट में रिव्यू करें और कमेंट से समझाएँ।

JSON से YAML कन्वर्टर: सवाल-जवाब

क्या JSON पहले से ही मान्य YAML है?

YAML 1.2 में, हाँ: 2009 का संस्करण इस तरह लिखा गया था कि हर JSON डॉक्यूमेंट अपने आप एक YAML डॉक्यूमेंट भी है। आप JSON को .yaml फ़ाइल में पेस्ट कर सकते हैं और ज़्यादातर टूल उसे मान लेंगे। कन्वर्ट करने का मक़सद पढ़ने में आसानी है: बिना ब्रेस, कोट और कॉमा वाला ब्लॉक स्टाइल वही है जो रिव्यूअर और अगला मेंटेनर चाहता है।

YAML में कुछ वैल्यू कोट्स में क्यों होती हैं?

क्योंकि बिना कोट के YAML उन्हें दूसरे टाइप का मान लेगा। 1.10 जैसी वर्शन स्ट्रिंग संख्या 1.1 बन जाएगी, और पुराने पार्सर में yes या off बूलियन बन सकते हैं। जो स्ट्रिंग संख्या, तारीख़ या बूलियन जैसी दिखती हैं, उन्हें स्ट्रिंग बने रहने के लिए कोट चाहिए, इसलिए सावधानी से किया गया कन्वर्शन उन्हें रखता है।

क्या कन्वर्ट करने के बाद कमेंट जोड़ सकते हैं?

हाँ, और कन्वर्ट करने की यह एक आम वजह है। लाइन के अंत में या अलग लाइन पर # के बाद अपना नोट लिखें। JSON में यह बताने का कोई तरीका नहीं था कि कोई वैल्यू क्यों रखी गई है; YAML में है, जिससे रिव्यू और हैंडओवर आसान हो जाते हैं।

मेरा YAML टैब कैरेक्टर की एरर क्यों देता है?

YAML स्पेसिफ़िकेशन इंडेंटेशन के लिए टैब मना करती है; सिर्फ़ स्पेस गिने जाते हैं। कन्वर्टर स्पेस लिखता है, लेकिन टैब डालने पर सेट एडिटर अगली एडिट में फ़ाइल बिगाड़ सकता है। अपने एडिटर को .yaml फ़ाइलों के लिए स्पेस इस्तेमाल करने पर सेट करें।

क्या Kubernetes कन्वर्ट किया गया मैनिफ़ेस्ट स्वीकार करेगा?

kubectl JSON और YAML दोनों पढ़ता है, इसलिए डेटा दोनों में एक ही रहता है; YAML वर्शन बस वही है जो ज़्यादातर डॉक्यूमेंटेशन, Helm चार्ट और कोड रिव्यू में इस्तेमाल होता है। बाद में jq या API कॉल के लिए JSON वापस चाहिए तो YAML से JSON इसे उलट देता है।