JSON से TypeScript
जो दस्तावेज़ आपके पास पहले से है उसी से ऐसे TypeScript इंटरफ़ेस, Python dataclasses, Go structs या Rust structs बनाइए जिन्हें सीधे प्रोजेक्ट में चिपकाया जा सके।
इनपुट
इस दस्तावेज़ के लिए सिंटैक्स रंग बंद है, क्योंकि इतने बड़े टेक्स्ट को हर कीस्ट्रोक पर दोबारा रंगने से टाइपिंग धीमी हो जाती। सभी टूल सामान्य रूप से काम करते रहेंगे।
आउटपुट
इस दस्तावेज़ के लिए सिंटैक्स रंग बंद है, क्योंकि इतने बड़े टेक्स्ट को हर कीस्ट्रोक पर दोबारा रंगने से टाइपिंग धीमी हो जाती। सभी टूल सामान्य रूप से काम करते रहेंगे।
नतीजा यहां दिखाई देगा।
यह पूरी तरह आपके ब्राउज़र में चलता है। आप जो पेस्ट करते हैं वह अपलोड नहीं होता, और आप इसे अपने ब्राउज़र के नेटवर्क टैब में देख सकते हैं।
इस टूल के बारे में
प्रकार उसी अनुमान से आते हैं जो स्कीमा जनरेटर इस्तेमाल करता है, इसलिए दोनों पेज आपके दस्तावेज़ पर सहमत रहते हैं और सिर्फ़ लिखने के ढंग में अलग हैं। नेस्टेड ऑब्जेक्ट इनलाइन प्रकार के बजाय नामवाला प्रकार बनता है, क्योंकि तीन स्तर गहरा इनलाइन प्रकार पढ़ा नहीं जाता और कोई दूसरी जगह उसका ज़िक्र नहीं कर सकती। नाम उसी कुंजी से आते हैं जिसमें मान है, ऐरे के भीतर एकवचन में, और पहले से लिया हुआ नाम मिलने पर उसमें संख्या जुड़ जाती है ताकि नतीजा हमेशा कंपाइल हो। जो कुंजी किसी रिकॉर्ड में नहीं है उस पर प्रश्नचिह्न लगाकर वैकल्पिक चिह्नित किया जाता है। खाली ऑब्जेक्ट खाली इंटरफ़ेस के बजाय unknown का रिकॉर्ड बनता है, और खाली ऐरे unknown का ऐरे, क्योंकि नमूना यह नहीं बताता कि भीतर क्या होता। सारी संख्याएं number हैं, क्योंकि TypeScript में पूर्णांक का अलग प्रकार नहीं है। आउटपुट भाषा को Python में बदलने पर वही अनुमानित संरचना dataclasses के रूप में लिखी जाती है: नेस्टेड ऑब्जेक्ट नेस्टेड क्लास बनता है, उसी तरह नामित और डुप्लिकेट-रहित, और जो कुंजी किसी रिकॉर्ड में नहीं है वह None डिफ़ॉल्ट के साथ Optional बनती है, हर हमेशा मौजूद फ़ील्ड के बाद रखी जाती है, क्योंकि Python को यही क्रम चाहिए। TypeScript आउटपुट के उलट, Python में int और float अलग रहते हैं। Go में बदलने पर वही संरचना structs के रूप में लिखी जाती है, हर फ़ील्ड पर एक json स्ट्रक्ट टैग होता है जिसमें मूल कुंजी होती है, ताकि बना हुआ कोड ठीक उसी दस्तावेज़ में वापस बदल सके जहां से वह आया था। जो कुंजी किसी रिकॉर्ड में नहीं है, या कभी-कभी सचमुच null है, वह पॉइंटर बनती है, और omitempty टैग सिर्फ़ तभी जोड़ा जाता है जब वह वाकई मायने रखे, क्योंकि Go पहले से ही गायब slice या map को बिना उसके nil मानता है। Go में भी पूर्णांक और दशमलव अलग रहते हैं, int64 और float64 के रूप में। Rust में बदलने पर serde derive वाले structs लिखे जाते हैं: फ़ील्ड snake_case बनते हैं और जब असली नाम बदलता है तभी serde का rename एट्रिब्यूट जुड़ता है, जो कुंजी किसी रिकॉर्ड में नहीं है वह skip_serializing_if के साथ Option बनती है ताकि वह फिर से गायब हो, null बनकर न दिखे, और जो JSON कुंजी संयोग से Rust का कीवर्ड हो, जैसे type, वह raw identifier के रूप में लिखी जाती है ताकि नतीजा फिर भी कंपाइल हो।
कैसे उपयोग करें
- एक दस्तावेज़, या ऐरे के भीतर कई रिकॉर्ड, इनपुट पैनल में पेस्ट कीजिए।
- आउटपुट भाषा और मूल नाम चुनिए, उसके विकल्प ठीक कीजिए, फिर प्रकार बनाएं दबाइए।
- घोषणाएं कॉपी कीजिए या फ़ाइल के रूप में डाउनलोड कीजिए।