सीधे कंटेंट पर जाएँ

JSON को TypeScript, Go, Python और अन्य में कन्वर्ट करें

JSON सैंपल पेस्ट करें और TypeScript इंटरफ़ेस, Zod स्कीमा, Go struct, Python, Java, C#, Kotlin, Swift और Rust टाइप पाएँ। सब कुछ आपके ब्राउज़र में बनता है।

कई सैंपल (एक के बाद एक, या JSON Lines) और ऐरे के अंदर के ऑब्जेक्ट मर्ज किए जाते हैं: जो की कहीं नहीं मिलती वह वैकल्पिक बन जाती है, और null वाली वैल्यू nullable।

TypeScript
सैंपल पेस्ट करें और “टाइप जनरेट करें” दबाएँ।
इस रूप में घोषित करें
आपके ब्राउज़र में चलता है · अपलोड नहीं होतायह कैसे काम करता है

JSON से टाइप्स इस्तेमाल कैसे करें

  1. 1

    JSON सैंपल पेस्ट करें

    एक रिस्पॉन्स, रिकॉर्ड की ऐरे, या कई रिस्पॉन्स एक के बाद एक पेस्ट करें; सैंपल में दो मर्ज किए गए यूज़र दिखते हैं।

  2. 2

    भाषा चुनें

    TypeScript, Zod, Go, Python, Java, C#, Kotlin, Swift या Rust चुनें, और उसके स्टाइल विकल्प सेट करें।

  3. 3

    रूट टाइप का नाम दें

    सबसे ऊपरी टाइप का नाम लिखें, जैसे User या OrderResponse।

  4. 4

    जनरेट करें और कॉपी करें

    टाइप जनरेट करें दबाएँ, फिर कोड कॉपी करें या डाउनलोड करें; बदलाव करने पर कोड अपने आप दोबारा बन जाता है।

सीमाएँ और Pro

बिना साइन-अप के मुफ़्त: 3 Python स्टाइल के साथ 9 आउटपुट भाषाएँ, जितने चाहें उतने मर्ज किए गए सैंपल और 20 MB तक की फ़ाइलें; जनरेशन 30 सेकंड बाद रुक जाता है।

Pro में विज्ञापन नहीं दिखते; जनरेटर हर प्लान में एक जैसा है। Pro देखें

JSON से टाइप्स के बारे में

किसी API रिस्पॉन्स के लिए टाइप हाथ से लिखना धीमा है और उसमें गलतियाँ भी आसानी से हो जाती हैं, ख़ासकर जब डेटा तीन स्तर तक नेस्टेड हो। एक या ज़्यादा JSON सैंपल पेस्ट करें। यह जनरेटर स्ट्रक्चर पहचानकर नौ तरह की तैयार परिभाषाएँ लिखता है: TypeScript interface या type alias, रनटाइम वैलिडेशन के लिए Zod स्कीमा वाला TypeScript, json टैग वाले Go struct, Python के dataclass, TypedDict या Pydantic v2 मॉडल, Jackson एनोटेशन वाले Java record, System.Text.Json के लिए C# क्लास, kotlinx.serialization के लिए Kotlin data class, Swift Codable struct और serde के लिए Rust struct।

एक सैंपल में शायद ही कभी सारे फ़ील्ड दिखते हैं, इसलिए जनरेटर आपके दिए सभी सैंपल को मर्ज करता है। कई दस्तावेज़ एक के बाद एक, JSON Lines के रूप में, या ऑब्जेक्ट की एक ऐरे पेस्ट करें: जो की कुछ ऑब्जेक्ट में नहीं है वह वैकल्पिक बन जाती है, जो की कभी null होती है वह nullable बन जाती है, जो पूर्णांक कभी दशमलव होता है वह float बन जाता है, और सच में मिले-जुले मान union या उस भाषा का डायनामिक JSON टाइप बन जाते हैं। नेस्टेड ऑब्जेक्ट को उनके अपने नाम वाले टाइप मिलते हैं, जैसे orders से Order और addresses से Address, और एक जैसे आकार सिर्फ़ एक बार बनकर दोबारा इस्तेमाल होते हैं। जिन ऑब्जेक्ट की कीज़ संख्याएँ, UUID या तारीख़ें हैं, वे map बन जाते हैं।

फ़ील्ड के नाम हर भाषा की परंपरा में बदले जाते हैं, और first-name या class जैसी अलग JSON कीज़ को सही एनोटेशन, alias या CodingKeys से वापस जोड़ा जाता है। सैंपल में कमेंट और आख़िरी कॉमा चल जाते हैं।

आउटपुट उन्हीं सैंपल का वर्णन करता है जो आप देते हैं। जनरेटर उन फ़ील्ड या मानों के बारे में नहीं जान सकता जो आपके सैंपल में नहीं हैं, इसलिए भरोसा करने से पहले इसे अपने API डॉक्यूमेंटेशन से मिला लें।

गोपनीयता

सैंपल पार्स करने और कोड जनरेट करने का काम इसी टैब में एक Web Worker करता है, इसलिए निजी या आंतरिक डेटा वाले API रिस्पॉन्स कभी अपलोड नहीं होते। भाषा और नामकरण के विकल्प लोकल स्टोरेज में सेव होते हैं; आपका पेस्ट किया हुआ JSON सेव नहीं किया जाता।

खूबियाँ

कई सैंपल मर्ज करता है

आपके पेस्ट किए सभी सैंपल में जो कीज़ नहीं हैं वे वैकल्पिक और null मान वाली कीज़ nullable बन जाती हैं।

9 भाषाएँ

TypeScript, Zod, Go, Python, Java, C#, Kotlin, Swift और Rust, हर भाषा के अपने नामकरण के साथ।

की मैपिंग शामिल

json टैग, alias, @SerialName, @JsonProperty और CodingKeys असली JSON नाम बनाए रखते हैं।

JSON से टाइप्स: अक्सर पूछे जाने वाले सवाल

यह कैसे तय होता है कि कौन से फ़ील्ड वैकल्पिक हैं?
कोई फ़ील्ड तब वैकल्पिक होता है जब उस जगह के कम से कम एक ऑब्जेक्ट में वह की मौजूद न हो। अगर आप सिर्फ़ एक ऑब्जेक्ट पेस्ट करते हैं तो हर फ़ील्ड ज़रूरी रहता है, क्योंकि उसमें इसके उलट कुछ नहीं दिखता। कई असली रिस्पॉन्स या रिकॉर्ड की ऐरे पेस्ट करें, ताकि जनरेटर देख सके कि कौन सी कीज़ आती-जाती हैं। आंशिक या patch पेलोड के लिए हर फ़ील्ड को वैकल्पिक बनाएँ विकल्प है।
जब कोई मान कभी-कभी null हो तो क्या होता है?
फ़ील्ड nullable बन जाता है: TypeScript में string | null, Go में पॉइंटर, Python में str | None, Kotlin और Swift में String?, Rust में Option<String>, और Java तथा C# में बॉक्स्ड या nullable टाइप। जो फ़ील्ड हर सैंपल में null है, उसका टाइप पहचाना नहीं जा सकता, इसलिए वह उस भाषा का unknown या डायनामिक JSON टाइप बन जाता है।
मेरे पूर्णांक float क्यों बन गए?
अगर एक ही फ़ील्ड में एक सैंपल में 7 है और दूसरे में 7.5, तो टाइप को दोनों रखने होते हैं, इसलिए वह float या double बन जाता है। 10.0 जैसी दशमलव बिंदु वाली संख्याएँ भी दशमलव मानी जाती हैं। TypeScript में दोनों number हैं; Zod में सिर्फ़ पूर्णांक वाला फ़ील्ड z.number().int() से जाँचा जाता है।
क्या यह quicktype जैसा ही है?
यह उसी समस्या को अपने जनरेटर से हल करता है, जो पूरी तरह आपके ब्राउज़र में चलता है और कुछ चीज़ें जोड़ता है: TypedDict समेत तीन Python स्टाइल, Zod स्कीमा, और कई पेस्ट किए दस्तावेज़ों की मर्जिंग। quicktype ज़्यादा भाषाओं को सपोर्ट करता है और JSON Schema पढ़ सकता है। यहाँ की नौ भाषाओं के लिए आउटपुट बिना अतिरिक्त रनटाइम हेल्पर के कंपाइल होने के लिए बनाया गया है।
क्या यह तारीख़, enum या UUID पहचान सकता है?
नहीं। स्ट्रिंग स्ट्रिंग ही रहती हैं, क्योंकि चंद सैंपल यह साबित नहीं कर सकते कि आगे का हर मान तारीख़ होगा या किसी तय सेट का हिस्सा। जहाँ आपका API इसकी गारंटी देता है, वहाँ जनरेट हुए टाइप को हाथ से Date, time.Time, datetime, enum या UUID टाइप में बदल लें। UUID, संख्याओं या तारीख़ों की कीज़ वाले ऑब्जेक्ट अपवाद हैं: वे map बन जाते हैं।
सभी डेवलपर टूल