JSON to YAML

JSON को YAML फ़ॉर्मेट में बदलें

उदाहरण देखें

JSON इनपुट

YAML आउटपुट

स्थानीय रूप से चलता है · सीक्रेट पेस्ट करना सुरक्षित है
YAML यहाँ दिखेगा…

JSON से YAML रूपांतरण क्या है?

JSON से YAML रूपांतरण डेटा को JavaScript Object Notation से YAML Ain't Markup Language में परिवर्तित करता है। दोनों फ़ॉर्मेट एक ही डेटा संरचनाओं (ऑब्जेक्ट, ऐरे, स्ट्रिंग, संख्याएँ, बूलियन, null) को दर्शाते हैं, लेकिन उनका सिंटैक्स अलग होता है। JSON कर्ली ब्रेसेज़, स्क्वेयर ब्रैकेट और कॉमा पर निर्भर करता है। YAML इंडेंटेशन और लाइन ब्रेक का उपयोग करता है, जिससे आउटपुट सादे पाठ के ज़्यादा करीब होता है। XML के विपरीत, किसी भी फ़ॉर्मेट को स्कीमा की आवश्यकता नहीं होती।

YAML को human-friendly डेटा सीरियलाइज़ेशन फ़ॉर्मेट के रूप में डिज़ाइन किया गया था। यह Kubernetes मैनिफेस्ट, Docker Compose फ़ाइलों, Ansible प्लेबुक, GitHub Actions वर्कफ़्लो और अनेक CI/CD प्रणालियों के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन भाषा है। जब आपका स्रोत डेटा JSON में हो और लक्ष्य प्रणाली YAML की अपेक्षा करे, तो आपको एक ऐसे कनवर्टर की आवश्यकता है जो डेटा हानि के बिना प्रत्येक मान, प्रकार और नेस्टिंग स्तर को सटीक रूप से संरक्षित करे।

JSON से YAML का ऑनलाइन रूपांतरण तब उपयोगी होता है जब आपको JSON में API response या export किया गया डेटा मिले और उसे YAML कॉन्फ़िग फ़ाइल में paste करना हो। सभी standard JSON types के लिए यह conversion lossless है: स्ट्रिंग, संख्याएँ, बूलियन, null, ऐरे और ऑब्जेक्ट सीधे उनके YAML समकक्षों से मेल खाते हैं। कोलन या विशेष वर्णों वाले मान स्वचालित रूप से उद्धृत हो जाते हैं ताकि आउटपुट वैध YAML हो।

JSON को YAML में क्यों बदलें?

YAML कॉन्फ़िग फ़ाइलों का मानक है; JSON वह है जो APIs return करती हैं। दोनों के बीच रूपांतरण से आप डेटा को हाथ से दोबारा लिखे बिना प्रत्येक कार्य के लिए उचित फ़ॉर्मेट का उपयोग कर सकते हैं।

तत्काल रूपांतरण
JSON चिपकाएँ और YAML आउटपुट तुरंत प्राप्त करें। सर्वर प्रोसेसिंग की प्रतीक्षा नहीं, फ़ाइल अपलोड नहीं, rate limit नहीं।
🔒
गोपनीयता-केंद्रित प्रोसेसिंग
आपका डेटा कभी आपके ब्राउज़र से बाहर नहीं जाता। रूपांतरण पूरी तरह आपके डिवाइस पर JavaScript में चलता है, इसलिए क्रेडेंशियल, टोकन और API कुंजियाँ निजी रहती हैं।
🔀
किसी भी JSON संरचना को संभाल सकता है
गहरे नेस्टेड ऑब्जेक्ट, बड़े ऐरे, मिश्रित प्रकार, Unicode स्ट्रिंग और विशेष वर्ण — सभी सही ढंग से बदलते हैं। यह उपकरण पूरी डेटा संरचना को संरक्षित करता है।
📋
खाता या इंस्टॉलेशन की आवश्यकता नहीं
पृष्ठ खोलें और बदलना शुरू करें। कोई साइनअप नहीं, कोई एक्सटेंशन नहीं, कोई CLI उपकरण इंस्टॉल नहीं। ब्राउज़र वाले किसी भी डिवाइस पर काम करता है।

JSON से YAML उपयोग के मामले

Kubernetes और Docker Compose
API प्रतिक्रियाएँ और निर्यात किए गए कॉन्फ़िग अक्सर JSON में आते हैं। उन्हें Kubernetes मैनिफेस्ट, Helm चार्ट और Docker Compose फ़ाइलों में सीधे उपयोग के लिए YAML में बदलें।
CI/CD पाइपलाइन कॉन्फ़िगरेशन
GitHub Actions, GitLab CI, CircleCI और Azure Pipelines सभी YAML का उपयोग करते हैं। जब JSON से प्रोग्रामेटिक रूप से पाइपलाइन कॉन्फ़िग बनाया जाए, तो कमिट करने से पहले आउटपुट को बदलें।
Ansible प्लेबुक
Ansible प्लेबुक और इन्वेंटरी फ़ाइलों के लिए YAML की अपेक्षा करता है। क्लाउड API से JSON इन्वेंटरी निर्यात को उस YAML फ़ॉर्मेट में बदलें जिसकी Ansible आवश्यकता करता है।
API प्रतिक्रिया निरीक्षण
REST API JSON return करते हैं। नेस्टेड response को YAML में बदलने से डेटा hierarchy एक नज़र में दिखती है, जो bracket-भरे JSON को scan करने से तेज़ है।
कॉन्फ़िगरेशन फ़ाइल स्थानांतरण
किसी एप्लिकेशन को JSON-आधारित कॉन्फ़िग (जैसे tsconfig.json, package.json निर्यात) से YAML-आधारित उपकरणों में स्थानांतरित करते समय, मान दोबारा टाइप करने के बजाय एक साथ bulk convert करें।
अध्ययन और दस्तावेज़ीकरण
छात्र और तकनीकी लेखक यह समझने के लिए JSON/YAML को साथ-साथ देखते हैं कि डेटा संरचनाएँ फ़ॉर्मेट के बीच कैसे मेल खाती हैं। यह कनवर्टर तत्काल, सटीक उदाहरण प्रदान करता है।

JSON बनाम YAML तुलना

JSON और YAML एक ही डेटा को दर्शा सकते हैं, लेकिन उनका सिंटैक्स और capabilities specific use cases के लिए काफी अलग हैं।

विशेषताJSONYAML
SyntaxCurly braces, square brackets, colons, commasIndentation-based, colons, dashes
ReadabilityModerate — nested brackets become denseHigh — visual hierarchy from indentation
CommentsNot allowed (RFC 8259)Supported with #
Multi-line stringsEscape sequences only (\n)Block scalars with | or >
Data typesstring, number, boolean, null, object, arraySame plus date, timestamp, binary
File sizeSlightly larger (brackets + quotes)Slightly smaller (no brackets)
Trailing commasNot allowedNot applicable (no commas)
SpecRFC 8259 / ECMA-404YAML 1.2 (yaml.org)

रूपांतरण के बाद YAML की सामान्य समस्याएँ

YAML में पार्सिंग नियम हैं जो JSON से आने वाले डेवलपर्स को चौंका देते हैं। ये चार समस्याएँ बदले गए आउटपुट के साथ काम करते समय सबसे अधिक त्रुटियाँ उत्पन्न करती हैं।

बिना उद्धरण के yes/no बूलियन बन जाते हैं
YAML 1.1 पार्सर yes, no, on, off, true और false को बूलियन मानते हैं। यदि आपके JSON में "yes" या "no" स्ट्रिंग मान है, तो YAML आउटपुट उद्धरण खो सकता है और पुराने उपकरणों द्वारा बूलियन के रूप में पार्स किया जा सकता है। YAML 1.2 इसे केवल true/false तक सीमित करता है।
इंडेंटेशन त्रुटियाँ पार्सिंग तोड़ती हैं
YAML संरचना परिभाषित करने के लिए इंडेंटेशन का उपयोग करता है। एक अतिरिक्त या अनुपस्थित रिक्त स्थान अर्थ बदल सकता है या पार्स त्रुटि उत्पन्न कर सकता है। JSON के विपरीत, जहाँ गलत जगह कॉमा clear error देता है, YAML indentation की गलतियाँ चुपचाप डेटा hierarchy बदल सकती हैं।
मानों में कोलन के लिए उद्धरण आवश्यक
कोलन के बाद रिक्त स्थान (": ") YAML का कुंजी-मान विभाजक है। यदि आपकी JSON स्ट्रिंग में वह अनुक्रम है (जैसे "http://example.com"), तो YAML आउटपुट को मान उद्धृत करना होगा। अधिकांश कनवर्टर इसे स्वचालित रूप से संभालते हैं।
बहु-दस्तावेज़ फ़ाइलें
YAML एक फ़ाइल में --- से अलग किए गए अनेक दस्तावेज़ों का समर्थन करता है। JSON में इसका कोई समकक्ष नहीं है। कॉन्फ़िग के JSON ऐरे को बदलते समय, प्रत्येक तत्व अलग YAML दस्तावेज़ बन सकता है या ऐरे आइटम के रूप में रह सकता है। जानें कि आपका लक्ष्य उपकरण किस फ़ॉर्मेट की अपेक्षा करता है।

कोड उदाहरण

अधिकांश भाषाओं में JSON को YAML में programmatically बदलने के लिए YAML सीरियलाइज़ेशन लाइब्रेरी की आवश्यकता होती है। मानक लाइब्रेरी JSON पार्सिंग संभालती है; YAML आउटपुट के लिए अतिरिक्त पैकेज चाहिए।

JavaScript (Node.js)
import YAML from 'js-yaml'

const json = '{"host":"localhost","port":3000,"debug":true}'
const obj = JSON.parse(json)
const yamlStr = YAML.dump(obj, { indent: 2 })
console.log(yamlStr)
// → host: localhost
// → port: 3000
// → debug: true
Python
import json, yaml

json_str = '{"host": "localhost", "port": 3000, "debug": true}'
data = json.loads(json_str)
yaml_str = yaml.dump(data, default_flow_style=False, sort_keys=False)
print(yaml_str)
# → host: localhost
# → port: 3000
# → debug: true
Go
package main

import (
    "encoding/json"
    "fmt"
    "gopkg.in/yaml.v3"
)

func main() {
    jsonStr := `{"host":"localhost","port":3000,"debug":true}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    yamlBytes, _ := yaml.Marshal(data)
    fmt.Println(string(yamlBytes))
    // → debug: true
    // → host: localhost
    // → port: 3000
}
CLI (yq / jq + Python)
# Using yq (https://github.com/mikefarah/yq)
echo '{"host":"localhost","port":3000}' | yq -P
# → host: localhost
# → port: 3000

# Using Python one-liner
echo '{"host":"localhost","port":3000}' | python3 -c "import sys,json,yaml; print(yaml.dump(json.load(sys.stdin), default_flow_style=False))"

अक्सर पूछे जाने वाले प्रश्न

क्या JSON से YAML conversion lossless है?
हाँ, सभी standard JSON types के लिए। स्ट्रिंग, संख्याएँ, बूलियन, null, ऐरे और ऑब्जेक्ट के सीधे YAML समकक्ष हैं। बदला गया YAML पार्स होकर समान डेटा उत्पन्न कर सकता है। एकमात्र सौंदर्य अंतर फ़ॉर्मेटिंग है: YAML ब्रेसेज़ के बजाय इंडेंटेशन का उपयोग करता है।
क्या YAML वह सब दर्शा सकता है जो JSON दर्शा सकता है?
हाँ। YAML, JSON का सुपरसेट है (YAML 1.2 के अनुसार)। प्रत्येक वैध JSON दस्तावेज़ वैध YAML भी है। YAML में JSON में अनुपस्थित सुविधाएँ हैं: टिप्पणियाँ, एंकर/उपनाम, बहु-पंक्ति स्ट्रिंग और दिनांक जैसे अतिरिक्त स्केलर प्रकार।
Kubernetes और Docker JSON के बजाय YAML का उपयोग क्यों करते हैं?
YAML टिप्पणियों का समर्थन करता है, जो infrastructure configuration documentation के लिए बहुत ज़रूरी हैं। यह गहरे नेस्टेड संरचनाओं के लिए भी अधिक पठनीय है क्योंकि इंडेंटेशन ब्रैकेट के शोर को हटाता है। Kubernetes वास्तव में JSON और YAML दोनों स्वीकार करता है, लेकिन समुदाय और सभी आधिकारिक दस्तावेज़ YAML का उपयोग करते हैं।
बड़ी JSON फ़ाइलों को कैसे संभालें?
यह कनवर्टर आपके ब्राउज़र में चलता है, इसलिए यह बिना किसी समस्या के कई मेगाबाइट तक की फ़ाइलें संभाल सकता है। बहुत बड़ी फ़ाइलों (50MB+) के लिए, yq जैसे CLI उपकरण या PyYAML लाइब्रेरी के साथ Python स्क्रिप्ट का उपयोग करें। ये डेटा को स्ट्रीम के रूप में संसाधित करते हैं और कम मेमोरी उपयोग करते हैं।
क्या कनवर्टर कुंजी क्रम संरक्षित करता है?
हाँ। कनवर्टर YAML कुंजियाँ उसी क्रम में आउटपुट करता है जिस क्रम में वे JSON इनपुट में दिखती हैं। JSON objects technically specification के अनुसार unordered होते हैं, लेकिन practically parsers insertion order बनाए रखते हैं, और यह tool YAML output में वही order रखता है।
आउटपुट किस YAML संस्करण का अनुसरण करता है?
आउटपुट YAML 1.2 परंपराओं का अनुसरण करता है। इसका मतलब है कि केवल true और false को boolean literals माना जाता है (yes/no/on/off नहीं)। जो स्ट्रिंग गलत अर्थ दे सकती हैं, वे स्वचालित रूप से उद्धृत होती हैं ताकि पार्सिंग अस्पष्टता न हो।
क्या इस उपकरण में API कुंजियाँ और टोकन चिपकाना सुरक्षित है?
हाँ। रूपांतरण पूरी तरह आपके ब्राउज़र में JavaScript का उपयोग करके चलता है। कोई भी डेटा किसी server को नहीं भेजा जाता। आप इसे अपने ब्राउज़र के नेटवर्क इंस्पेक्टर को खोलकर और यह देखकर सत्यापित कर सकते हैं कि रूपांतरण के दौरान कोई अनुरोध नहीं भेजा जाता।