JSON से TypeScript Interfaces

JSON नमूने से TypeScript interface या type alias बनाएँ, वैकल्पिक कुंजियों, null यूनियन और ऐरे से अनुमानित नेस्टेड टाइप के साथ। मुफ़्त और निजी।

जो कुंजियाँ कुछ ऐरे आइटम में नहीं हैं वे वैकल्पिक (?) बनती हैं, null मान "| null" बनते हैं और हमेशा null रहने वाले मान unknown बनते हैं।

पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।

संबंधित टूल्स

सभी देखें

JSON से TypeScript क्या है?

API रिस्पॉन्स या कॉन्फ़िग का नमूना पेस्ट करें और तुरंत इस्तेमाल योग्य TypeScript interface (या type) घोषणाएँ पाएँ। नेस्टेड ऑब्जेक्ट अलग एक्सपोर्ट किए टाइप बनते हैं, ऐरे के कुछ आइटम में गायब कुंजियाँ वैकल्पिक बन जाती हैं और null मान यूनियन टाइप बनते हैं।

JSON से TypeScript का उपयोग कैसे करें

  1. JSON इनपुट में JSON नमूना पेस्ट करें (या उदाहरण लोड करें / फ़ाइल खोलें दबाएँ)।
  2. रूट टाइप का नाम तय करें (डिफ़ॉल्ट Root)।
  3. आउटपुट शैली चुनें: interface या type एलियास।
  4. बना हुआ TypeScript कोड कॉपी करें या फ़ाइल के रूप में डाउनलोड करें।

उदाहरण

इनपुट
{"id":1,"name":"A","tags":["x"]}
आउटपुट
export interface Root {
  id: number;
  name: string;
  tags: string[];
}

JSON से TypeScript का उपयोग कब करें

fetch रिस्पॉन्स, फ़िक्स्चर या कॉन्फ़िग फ़ाइलों को जल्दी टाइप करने के लिए इसका उपयोग करें। एक नमूना हर स्थिति नहीं दिखा सकता: string enum, ऑब्जेक्ट आकारों की यूनियन या तारीख की स्ट्रिंग सादे string/मिले टाइप रहती हैं, इसलिए नतीजे की समीक्षा करके उसे सुधारें, या अनुबंधों के लिए JSON Schema आधारित जनरेटर इस्तेमाल करें।

JSON से TypeScript कैसे काम करता है

नमूने को रिकर्सिव ढंग से पढ़ा जाता है और हर स्थान उन टाइप को इकट्ठा करता है जो उसने देखे। ऑब्जेक्ट के ऐरे एक टाइप में मिला दिए जाते हैं: जो कुंजी कुछ एलिमेंट में नहीं है वह वैकल्पिक बन जाती है, जो कुंजी कहीं null है वह nullable बन जाती है, दशमलव के साथ मिले पूर्णांक फ़्लोटिंग-पॉइंट टाइप बनते हैं, और बाकी हर मिश्रित टाइप डायनैमिक टाइप पर चला जाता है। नेस्टेड ऑब्जेक्ट अपने नामित टाइप बनते हैं (कुंजी का PascalCase, ऐरे कुंजियों का एकवचन: orders → Order), और नाम टकराने पर अंक जुड़ते हैं। TypeScript आउटपुट पूर्णांक और दशमलव को number, स्ट्रिंग को string, बूलियन को boolean, ऐरे को T[], nullable मान को T | null और डायनैमिक मान को unknown से मैप करता है। जो कुंजियाँ मान्य आइडेंटिफ़ायर नहीं हैं उन्हें कोट किया जाता है ("first-name": string)।

सामान्य उपयोग मामले

  • क्लाइंट लिखने से पहले REST API रिस्पॉन्स को टाइप करना
  • JSON कॉन्फ़िग फ़ाइल के लिए interface बनाना
  • टेस्ट फ़िक्स्चर को टाइप किए ऑब्जेक्ट में बदलना
  • किसी थर्ड-पार्टी वेबहुक पेलोड के टाइप शुरू करना

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

कोई प्रॉपर्टी unknown क्यों टाइप हुई?

हर नमूने में उसका मान null था (या ऐरे खाली थे), इसलिए कोई असली टाइप अनुमानित नहीं हो सका। असली मान वाला नमूना जोड़ें या टाइप हाथ से बदलें।

वैकल्पिक प्रॉपर्टी कैसे पहचानी जाती हैं?

जब टॉप-लेवल मान या कोई नेस्टेड कुंजी ऑब्जेक्ट का ऐरे हो, तो जो कुंजी सिर्फ़ कुछ ऑब्जेक्ट में हो उसे ? से चिह्नित किया जाता है।

क्या यह runtime सत्यापन बनाता है?

नहीं, यह सिर्फ़ टाइप घोषणाएँ देता है, जो कंपाइल समय पर गायब हो जाती हैं। runtime जाँच चाहिए तो JSON Schema जैसा वैलिडेटर इस्तेमाल करें।

सुझाए गए अगले कदम

JSON फ़ॉर्मेटर
JSON को 2 स्पेस, 4 स्पेस या टैब से फ़ॉर्मेट करें, चाहें तो कुंजियाँ क्रम में लगाएँ और सिंटैक्स त्रुटि की सटीक पंक्ति व कॉलम पाएँ। ब्राउज़र में चलता है।
एस्केप/अनएस्केप टूल
JSON, JavaScript, HTML, XML, URL कंपोनेंट, रेगुलर एक्सप्रेशन, SQL लिटरल, CSS स्ट्रिंग और शेल आर्ग्युमेंट के लिए स्ट्रिंग एस्केप या अनएस्केप करने का एक ही टूल।
JSON मिनिफ़ायर
सारा गैर-ज़रूरी व्हाइटस्पेस हटाकर JSON मिनिफ़ाई करें; मान, कुंजी क्रम और बड़ी संख्याएँ सुरक्षित रहती हैं। बची हुई साइज़ दिखाता है। मुफ़्त और ब्राउज़र में।
JSON पाथ फ़ाइंडर
JSON दस्तावेज़ के हर पाथ को JSONPath, JavaScript या jq सिंटैक्स में सूचीबद्ध करें, पाथ पर क्लिक करके उसका मान देखें, या पाथ टाइप करके खोजें। ब्राउज़र में चलता है।
JSON Diff
दो JSON दस्तावेज़ों की संरचना के आधार पर तुलना करें: JSONPath के साथ जोड़े, हटाए और बदले गए मान देखें, कुंजी क्रम और फ़ॉर्मेटिंग की अनदेखी के साथ। मुफ़्त, ब्राउज़र में।
JSON Query (JSONPath)
JSONPath से JSON क्वेरी करें: वाइल्डकार्ड, रिकर्सिव डिसेंट, स्लाइस और [?(@.price < 10)] जैसे फ़िल्टर एक्सप्रेशन। टाइप करते ही नतीजे अपडेट होते हैं। jq सिंटैक्स नहीं।

और श्रेणियाँ देखें