← सबै उपकरण

JSON देखि YAML कन्भर्टर

JSON लाई YAML र YAML लाई JSON मा तुरुन्तै आफ्नो ब्राउजरमै बदल्नुहोस्। पूर्ण स्थानीय र निजी, कमेन्ट, टाइप, इन्डेन्टेसन र एंकरका नोटसहित।

तपाईंको ब्राउजरमा JSON लाई YAML र YAML लाई JSON मा रूपान्तरण गर्नुहोस्

JSON र YAML ले उही किसिमको डाटा वर्णन गर्छन् — नेस्ट गरिएको म्याप, सूची, स्ट्रिङ, संख्या, र बुलियन — तर तिनी धेरै फरक देखिन्छन् र फरक ठाउँमा प्रयोग हुन्छन्। तपाईं API, कन्टेनर फाइल, वा CI पाइपलाइनको नजिक कुनै समय बिताउनुहुन्छ भने, तपाईंलाई अन्ततः एउटालाई अर्कोमा बदल्नुपर्छ। यो पृष्ठले त्यो रूपान्तरण दुवै दिशामा गर्छ, पूर्णतया तपाईंको ब्राउजरभित्रै, त्यसैले तपाईंले पेस्ट गर्ने डाटा कहिल्यै तपाईंको मेसिन छोड्दैन।

गाढा नीलो पृष्ठभूमिमा प्रकाशको वियोगात्मक कोष्ठकहरू सफा इन्डेन्ट गरिएको कन्फिगरेसन तहमा घुल्दै
JSON संरचना इन्डेन्टेसनमा आधारित YAML मा खुल्दै।

JSON के हो र यो कहाँ बस्छ

JSON (जाभास्क्रिप्ट अब्जेक्ट नोटेसन) मुख्यतया मेसिनका लागि बनाइएको कडा, कोष्ठक-र-ब्रेस ढाँचा हो। हरेक वस्तु {} मा बेरिएको हुन्छ, हरेक एरे [] मा, कुञ्जी र स्ट्रिङ मानहरू डबल-कोट गरिएका हुन्छन्, र वस्तुहरू अल्पविरामले छुट्याइन्छन्। यो REST र GraphQL API हरूको डिफल्ट वायर ढाँचा हो, धेरैजसो वेबहुकको बडी, NoSQL कागजातको आकार, र तपाईंको fetch कलले फर्काउने कुरा हो। लगभग हरेक भाषाले यसलाई तत्कालै पार्स गर्छ, जुनचाहिँ यसले API तहमा जित्नुको ठ्याक्कै कारण हो: जाभास्क्रिप्टमा JSON.parse, पाइथन स्ट्यान्डर्ड लाइब्रेरीमा json, र अन्य सबैतिर समकक्ष। बेफाइदा भनेको JSON हातले लेख्न शब्दाडम्बरपूर्ण छ र टिप्पणी निषेध गर्छ, त्यसैले मानिसले दिनभरि सम्पादन गर्ने फाइलका लागि यो कमजोर ढाँचा हो।

YAML के हो र यो कहाँ बस्छ

YAML (YAML Ain't Markup Language) उल्टो प्राथमिकताका लागि डिजाइन गरिएको थियो: मानिसलाई पहिले। यसले ब्रेस र कोटहरू छाड्छ, नेस्टिङ व्यक्त गर्न इन्डेन्टेसन प्रयोग गर्छ, र तपाईंलाई # ले टिप्पणी लेख्न दिन्छ। त्यो पठनीयताले नै यो कन्फिगरेसनको लिङ्गुआ फ्रान्का बन्यो। Docker Compose फाइल, Kubernetes म्यानिफेस्ट, GitHub Actions र GitLab CI वर्कफ्लो, Ansible playbook, र असंख्य एप कन्फिग फाइलहरू सबै YAML हुन्। एउटा सामान्य YAML कागजात बराबरको JSON भन्दा उल्लेखनीय रूपमा छोटो हुन्छ र pull request मा diff गर्न धेरै सजिलो हुन्छ। त्यो सुन्दरताको मूल्य नै भङ्गुरता हो, जहाँ रूपान्तरण रोचक बन्छ।

महत्त्वपूर्ण मुख्य भिन्नताहरू

तीन भिन्नताले लगभग हरेक रूपान्तरण निर्णय चलाउँछन्। पहिलो, YAML मा ह्वाइटस्पेस महत्त्वपूर्ण हुन्छ र JSON मा अर्थहीन हुन्छ। YAML ले संरचना जनाउन स्पेस प्रयोग गर्छ — कहिल्यै ट्याब होइन — त्यसैले एउटा मिस्अलाइन गरिएको स्पेसले कागजातको अर्थ चुपचाप बदल्न सक्छ। JSON ले इन्डेन्टेसनको वास्तै गर्दैन। दोस्रो, YAML ले टिप्पणी समर्थन गर्छ र JSON ले गर्दैन। YAML मा कुनै पनि # टिप्पणी JSON उत्पादन गर्दा सीधै हराउँछ, किनभने त्यहाँ राख्ने ठाउँ छैन। तेस्रो, YAML मा धनी, अन्तर्निहित टाइपिङ हुन्छ। यसले मिति, टाइमस्ट्याम्प, र null लाई धेरै हिज्जेमा खुसीसाथ पढ्छ, र अनकोट गरिएको मानबाट प्रकार अनुमान गर्छ। JSON मा सानो, स्पष्ट प्रकार सेट हुन्छ र कुनै अस्पष्टता हुँदैन। यो पनि याद राख्नुहोस् कि JSON प्राविधिक रूपमा YAML 1.2 को उपसमूह हो, त्यसैले मान्य JSON सामान्यतया YAML को रूपमा सफासँग पार्स हुन्छ, तर उल्टो कुरा ग्यारेन्टी छैन।

साइयान र सुनौलो रङमा झिलिमिली दुई संरचित ढाँचाबीच रूपान्तरण हुँदै नेस्ट गरिएको डाटा रुख
उही डाटा रुख दुई ढाँचामा व्यक्त गरिएको।

ध्यान दिनुपर्ने रूपान्तरण झमेलाहरू

राउन्ड-ट्रिपिङ सधैं नोक्सानरहित हुँदैन, र कहाँ कुरा बिग्रन्छ थाहा पाउनु फाइदाजनक हुन्छ:

  • नर्वे समस्या। YAML 1.1 नियमअन्तर्गत, अनकोट गरिएको NO ले बुलियन false पार्स गर्छ, र yes, on, र off पनि बुलियन बन्छन्। देश कोड वा स्विच लेबलले तपाईंले याद नगर्दै true/false मा फ्लिप हुन सक्छ। तपाईंले स्ट्रिङको रूपमा चाहेको मानहरू कोट गर्नुहोस्।
  • संख्या जबरजस्ती। 3.10 जस्तो संस्करणले आफ्नो पछिको शून्य गुमाएर 3.1 बन्न सक्छ, र 1.0 ले टेक्स्ट चाहँदा पनि संख्या बन्छ। संस्करण स्ट्रिङ र ID हरू कोट गर्नुहोस्।
  • एङ्कर र उपनामहरू हराउँछन्। YAML को &anchor*alias सन्दर्भहरूको कुनै JSON समकक्ष हुँदैन। राम्रो कन्भर्टरले तिनलाई पूर्ण मानमा विस्तार गर्छ, त्यसैले डाटा सही हुन्छ तर डुप्लिकेसन हटाइएको हराउँछ — JSON लाई YAML मा र फेरि JSON मा गर्दा सक्कल एङ्कर पुनर्निर्माण हुँदैन।
  • टिप्पणी र ब्लक स्केलरहरू। JSON मा जाँदा टिप्पणीहरू हराउँछन्। धेरै-लाइन ब्लक स्केलर (|>) \n इस्केपसहितको साधारण JSON स्ट्रिङमा गुम्सिन्छन्, त्यसैले दृश्य फर्म्याटिङको उद्देश्य हराउँछ।
  • YAML मा फर्किंदा इन्डेन्टेसन। JSON ले इन्डेन्टेसन इन्कोड गर्दैन, त्यसैले कन्भर्टरले एउटा सुसंगत शैली छान्छ। ट्याब-संवेदनशील उपकरणमा पेस्ट गर्नुअघि यसलाई समीक्षा गर्नुहोस्।

स्थानीय-मात्र किन महत्त्वपूर्ण छ

कन्फिग फाइल र API पेलोड ठ्याक्कै त्यस्तै कुरा हुन् जुन अनियमित सर्भरमा अपलोड हुनुहुँदैन: तिनमा प्रायः होस्टनेम, टोकन, आन्तरिक सेवा नाम, वा ग्राहक डाटा हुन्छ। यो कन्भर्टरले पार्स-र-इमिट चरण तपाईंको ब्राउजरमा जाभास्क्रिप्टसँग चलाउँछ। केही पनि ब्याकएन्डमा पठाइँदैन, केही पनि लग हुँदैन, र पृष्ठ लोड भइसकेपछि उपकरणले अफलाइनमा पनि काम गर्छ। Kubernetes secret वा CI वर्कफ्लो आत्मविश्वासका साथ पेस्ट गर्नुहोस् कि यो तपाईंकै मेसिनमा रहन्छ।

सम्बन्धित उपकरण चाहिन्छ? सम्पूर्ण डाटा कन्भर्टरहरू हेर्नुहोस्, JSON फर्म्याटर ले अस्तव्यस्त इनपुट सफा गर्नुहोस्, र तपाईंलाई API संसार र कन्फिग संसारबीच सर्नु परेको बेला यहाँ फर्किनुहोस्।

बारम्बार सोधिने प्रश्नहरू

के मेरो डाटा कतै अपलोड हुन्छ?

होइन। रूपान्तरण पूर्णतया तपाईंको ब्राउजरमा स्थानीय जाभास्क्रिप्ट प्रयोग गरेर हुन्छ। तपाईंको JSON वा YAML कहिल्यै सर्भरमा पठाइँदैन, त्यसैले गोप्य र कन्फिग फाइल निजी रहन्छन्।

मेरो YAML मान true वा false अनपेक्षित रूपमा किन बदलियो?

YAML 1.1 ले yes, no, on, र off जस्ता अनकोट गरिएका शब्दहरूलाई बुलियनको रूपमा व्यवहार गर्छ — नर्वे समस्या। तपाईंले स्ट्रिङको रूपमा चाहेको जुनसुकै मानलाई कोटमा बेर्नुहोस् ताकि यो रूपान्तरणपछि पनि टेक्स्टको रूपमा रहन्छ।

मैले YAML लाई JSON मा रूपान्तरण गर्दा मेरा टिप्पणीहरूको के हुन्छ?

JSON मा कुनै टिप्पणी सिन्ट्याक्स हुँदैन, त्यसैले रूपान्तरणको समयमा सबै ह्यास टिप्पणी हटाइन्छन्। तपाईंलाई नोटहरू सुरक्षित राख्नुपरे, आफ्नो अधिकृत प्रतिलिपि YAML मा राख्नुहोस्।

के YAML एङ्कर र उपनामहरू जोगिन्छन्?

तिनी पूर्ण मानमा विस्तार गरिन्छन् किनभने JSON मा कुनै सन्दर्भ संयन्त्र हुँदैन। डाटा सही रहन्छ, तर तपाईंले फेरि YAML मा रूपान्तरण गर्दा डुप्लिकेसन हटाउने कुरा पुनःप्राप्त हुँदैन।

के म JSON लाई YAML मा पनि रूपान्तरण गर्न सक्छु, YAML लाई JSON मा जस्तै?

हो, उपकरणले दुवै दिशामा काम गर्छ। JSON पेस्ट गरेर YAML पाउनुहोस्, वा YAML पेस्ट गरेर JSON पाउनुहोस्, र कन्भर्टरले अर्को ढाँचा पत्ता लगाएर उत्पादन गर्छ।

मैले ट्याब प्रयोग गर्दा YAML किन बिग्रिन्छ?

YAML लाई इन्डेन्टेसनका लागि स्पेस चाहिन्छ र ट्याब अस्वीकार गर्छ। कुनै पेस्टले पार्स गर्न सकेन भने, ट्याब क्यारेक्टरलाई स्पेसले बदल्नुहोस् र इन्डेन्टेसन सुसंगत राख्नुहोस्।