मुफ़्त JSON से टाइप जनरेटर

JSON को TypeScript इंटरफ़ेस, Go structs या Rust टाइप में बदलें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

अपडेट किया गया

Share:
Home/Developer Tools/JSON to Types Converter

JSON to Types Converter

Convert JSON to TypeScript, Go, Rust, Python, C#, Java, Kotlin, Swift, Dart, Scala, PHP, or Zod schemas.

JSON Input

Generated Types
TypeScript

interface User {
  id: number;
  name: string;
  email: string;
  isActive: boolean;
  profile: Profile;
  tags: string[];
  metadata?: null;
}

interface Profile {
  bio: string;
  avatar: string;
  social: Social;
}

interface Social {
  twitter: string;
  github: string;
}

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

JSON to Types क्या है?

JSON to Types एक मुफ़्त ऑनलाइन टूल है जो JSON डेटा को TypeScript इंटरफ़ेस, Go structs, Rust टाइप्स और अन्य भाषाओं के लिए टाइप परिभाषाओं में बदल देता है।

क्या JSON to Types मुफ़्त है?

हाँ, यह पूरी तरह मुफ़्त है और इसके लिए किसी पंजीकरण की ज़रूरत नहीं है। पूरा रूपांतरण आपके ब्राउज़र में क्लाइंट-साइड पर होता है।

कौन-कौन सी आउटपुट भाषाएँ समर्थित हैं?

JSON to Types, TypeScript, Go, Rust, Python (dataclasses) और अन्य स्टैटिकली-टाइप्ड भाषाओं के लिए टाइप परिभाषाएँ तैयार करता है।

क्या इस टूल के साथ मेरा डेटा सुरक्षित है?

बिल्कुल। JSON to Type Generator सब कुछ आपके ब्राउज़र में क्लाइंट-साइड पर प्रोसेस करता है। कोई भी डेटा किसी सर्वर पर अपलोड या स्टोर नहीं किया जाता। आपकी सामग्री हर समय आपके डिवाइस पर निजी रहती है।

क्या JSON to Type Generator मोबाइल डिवाइस पर काम करता है?

हाँ, JSON to Type Generator पूरी तरह रिस्पॉन्सिव है और स्मार्टफ़ोन व टैबलेट पर काम करता है। आप इसे आधुनिक वेब ब्राउज़र वाले किसी भी डिवाइस पर इस्तेमाल कर सकते हैं — किसी ऐप को डाउनलोड करने की ज़रूरत नहीं।

क्या इस टूल का उपयोग करने के लिए मुझे खाता बनाना होगा?

किसी खाते या पंजीकरण की ज़रूरत नहीं है। बस अपने ब्राउज़र में JSON to Type Generator खोलें और तुरंत इस्तेमाल शुरू करें। कोई साइन-अप रुकावट या उपयोग की सीमा नहीं है।

मैं JSON to Type Generator का उपयोग कैसे करूँ?

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

कौन-से ब्राउज़र समर्थित हैं?

JSON to Type Generator सभी आधुनिक ब्राउज़रों में काम करता है, जिनमें Chrome, Firefox, Safari, Edge और Opera शामिल हैं। सर्वोत्तम अनुभव के लिए अपने पसंदीदा ब्राउज़र के नवीनतम संस्करण का उपयोग करें।

यह टूल कैसे तय करता है कि कोई JSON नंबर इंटीजर बनेगा या फ्लोट?

यह कन्वर्टर हर न्यूमेरिक वैल्यू की जाँच करता है और सभी नंबरों को एक जैसा मानने के बजाय उन्हें समझदारी से अलग करता है। 42 जैसी पूरी संख्या उस भाषा की इंटीजर टाइप में मैप होती है — Go में int64, Rust में i64, और Python में int — जबकि 19.99 जैसी डेसीमल पॉइंट वाली वैल्यू फ्लोट या डबल बन जाती है। यह इसलिए मायने रखता है क्योंकि JSON में खुद सिर्फ एक ही नंबर टाइप होती है, इसलिए जनरेट किया गया struct या interface अन्यथा यह अंतर खो देता और आपको इसे हाथ से ठीक करना पड़ता। ध्यान रखें कि यह निर्णय आपके पेस्ट किए गए सैंपल पर आधारित होता है, इसलिए अगर कोई फ़ील्ड 5 और 5.5 दोनों रख सकती है, तो व्यापक टाइप पाने के लिए डेसीमल दिखाने वाला उदाहरण दें। ऊपर एक प्रतिनिधि payload पेस्ट करें और अनुमानित इंटीजर व फ्लोट टाइप्स तुरंत दिख जाएँगी।

JSON से TypeScript interface और Zod schema जनरेट करने में क्या अंतर है?

TypeScript interface एक कंपाइल-टाइम टाइप है: यह कंपाइलर को आपके डेटा का स्ट्रक्चर बताता है लेकिन रनटाइम पर गायब हो जाता है, इसलिए यह कभी भी आने वाले payload की असल में जाँच नहीं करता। Zod schema एक रनटाइम वैलिडेटर है — यह आपके कोड चलते समय असली डेटा की जाँच करता है और अगर कोई फ़ील्ड मिसिंग हो या गलत टाइप की हो तो एरर थ्रो करता है, और यह आपके लिए मैचिंग TypeScript टाइप भी इंफर कर सकता है। जब आप सोर्स पर भरोसा करते हैं और सिर्फ एडिटर ऑटोकम्प्लीट व कंपाइल चेक चाहते हैं, तो interface आउटपुट इस्तेमाल करें; जब आप अविश्वसनीय API रिस्पॉन्स या फ़ॉर्म इनपुट पार्स कर रहे हों और बाउंड्री पर असली गार्ड चाहिए हो, तो Zod आउटपुट चुनें। दोनों यहाँ अलग-अलग टारगेट के रूप में उपलब्ध हैं, इसलिए आप एक ही JSON से कोई भी एक जनरेट कर सकते हैं। अपना सैंपल पेस्ट करें और तुलना करने के लिए TypeScript या Zod चुनें।

यह कन्वर्टर ऐसे JSON array को कैसे हैंडल करता है जिसमें अलग-अलग वैल्यू टाइप्स मिली हुई हों?

जब किसी array में एक से ज़्यादा तरह की वैल्यू होती है, तो यह टूल किसी अस्पष्ट कैच-ऑल टाइप पर सिमटने के बजाय हर एलिमेंट की जाँच करता है। TypeScript आउटपुट में यह रिज़ल्ट को यूनियन के रूप में दिखाता है — स्ट्रिंग्स और नंबर्स रखने वाला array any[] नहीं बल्कि (string | number)[] बन जाता है — जिससे असली टाइप सेफ्टी बनी रहती है। ऑब्जेक्ट्स के एकसमान array के लिए यह और भी स्मार्ट काम करता है: यह एक फिर से इस्तेमाल होने वाली एलिमेंट टाइप बनाता है और उसे लेबल करने के लिए फ़ील्ड नेम को सिंगुलर बना देता है, जिससे tags array पेरेंट द्वारा रेफ़र किया गया Tag टाइप देता है। इससे जनरेट की गई डेफिनिशन साफ़-सुथरी और इडियोमैटिक रहती हैं, न कि डुप्लिकेट स्ट्रक्चर इनलाइन किए हुए। चूँकि इंफरेंस असल में मौजूद एलिमेंट्स पर आधारित होता है, सबसे सटीक यूनियन पाने के लिए अपने सैंपल में हर वेरिएंट का उदाहरण शामिल करें। सबसे सटीक परिणाम के लिए ऊपर एक मिश्रित array पेस्ट करें और यूनियन को अपने आप जनरेट होते देखें।

Optional nulls टॉगल जनरेट की गई टाइप्स में क्या बदलाव करता है?

Optional nulls टॉगल यह नियंत्रित करता है कि आपके सैंपल में null रखने वाली फ़ील्ड्स आउटपुट में कैसे दिखाई जाएँ। जब यह ऑन होता है, तो हर null फ़ील्ड को टारगेट भाषा की पसंदीदा शैली में ऑप्शनल मार्क किया जाता है: TypeScript प्रॉपर्टीज़ पर ? मॉडिफायर, Python में Optional[...], Rust में Option<...>, और Go में ,omitempty टैग। जब यह ऑफ़ होता है, तो फ़ील्ड एक सादी नॉन-ऑप्शनल टाइप बनी रहती है। इसे ऑन करना तब उपयोगी है जब कोई key असली रिस्पॉन्स में वैध रूप से अनुपस्थित या null हो सकती है, क्योंकि इससे टाइप ऐसी वैल्यू ज़बरदस्ती नहीं माँगती जो शायद मौजूद ही न हो। ध्यान रखें कि टूल को किसी फ़ील्ड के nullable होने का पता तभी चलता है जब आपके पेस्ट किए सैंपल में उसके लिए असल में null दिखे, इसलिए अपने उदाहरण में वे मामले शामिल करें। ऊपर Optional nulls टॉगल करें और अपनी चुनी हुई भाषा के लिए आउटपुट को लाइव अपडेट होते देखें।

नेस्टेड JSON ऑब्जेक्ट्स से बनाई गई अलग टाइप्स को यह टूल कैसे नाम देता है?

किसी नेस्टेड ऑब्जेक्ट को उसके पेरेंट के अंदर इनलाइन करने के बजाय, यह कन्वर्टर उसे अपनी अलग नामित टाइप में निकालता है। किसी यूज़र के अंदर मौजूद profile ऑब्जेक्ट एक स्टैंडअलोन Profile डेफिनिशन बन जाता है जिसे पेरेंट रेफ़र करता है, जिससे हर टाइप छोटी और फिर से इस्तेमाल होने लायक बनी रहती है। नाम JSON keys से लिए जाते हैं और फिर हर भाषा के अनुसार एडजस्ट किए जाते हैं: टाइप नेम्स PascalCase में लिखे जाते हैं, जबकि फ़ील्ड नेम्स को हर इकोसिस्टम के कन्वेंशन के अनुसार दोबारा लिखा जाता है — Rust और Python के लिए snake_case, बाकी में camelCase। सबसे अहम बात, असली JSON key को किसी सीरियलाइज़ेशन टैग या rename एट्रिब्यूट में सुरक्षित रखा जाता है, जैसे Go का json:"..." टैग या Swift का CodingKeys, ताकि रीनेम होने के बाद भी एनकोडिंग और डिकोडिंग सही तरीके से राउंड-ट्रिप हो सके। आप टॉप-लेवल टाइप को लेबल करने के लिए एक रूट टाइप नाम भी सेट कर सकते हैं। अपने लिए जनरेट की गई नामित चाइल्ड टाइप्स देखने के लिए ऊपर एक नेस्टेड ऑब्जेक्ट पेस्ट करें।

संबंधित टूल

Free JSON to Type Generator के बारे में

JSON to Type Generator आपके JSON सैंपल को किसी भी स्टैटिकली टाइप्ड भाषा के लिए इस्तेमाल के लिए तैयार टाइप डेफिनिशन में बदल देता है। कोई भी असली API रिस्पॉन्स या कॉन्फ़िग ऑब्जेक्ट पेस्ट करें, रूट टाइप को एक नाम दें, टारगेट भाषा चुनें, और यह टूल आपके डेटा के स्ट्रक्चर का अनुमान लगाकर मैचिंग इंटरफ़ेस, स्ट्रक्ट, क्लास या स्कीमा लिख देता है। यह उन बैकएंड और फ्रंटएंड डेवलपर्स के लिए बनाया गया है जो बार-बार एक ही काम में उलझते हैं: एक JSON payload बिना टाइप के आता है, और किसी को हाथ से टाइप लिखने पड़ते हैं ताकि कंपाइलर गलतियाँ पकड़ सके।

पूरा काम आपके ब्राउज़र में ही होता है। आपका JSON ब्राउज़र के अपने JSON.parse से लोकली पार्स और कन्वर्ट होता है, इसलिए कुछ भी किसी सर्वर पर अपलोड, लॉग या स्टोर नहीं होता। यह तब मायने रखता है जब payload में असली डेटा हो — ऑथ टोकन, कस्टमर रिकॉर्ड, या कोई इंटरनल API कॉन्ट्रैक्ट जिसे आप किसी रिमोट सर्विस में पेस्ट नहीं करना चाहेंगे। कोई साइन-अप नहीं, कोई यूसेज कैप नहीं।

यह किन भाषाओं और आउटपुट फ़ॉर्मैट में टाइप बनाता है

यह कन्वर्टर बारह टारगेट्स के लिए टाइप डेफिनिशन तैयार करता है, हर एक उसी इकोसिस्टम के इडियोमैटिक कन्वेंशन के अनुसार:

  • TypeScriptinterface या type alias (आपकी पसंद के अनुसार)
  • Gojson:"..." फ़ील्ड टैग वाले structs
  • Rust#[derive(Serialize, Deserialize)] Serde मैक्रो वाले structs
  • Python — टाइप हिंट्स के साथ @dataclass डेफिनिशन
  • Zod — रनटाइम वैलिडेशन स्कीमा, साथ में इंफर की गई TypeScript टाइप
  • C#[JsonProperty] (Newtonsoft.Json) वाली क्लासेस
  • Java — Jackson @JsonProperty और गेटर/सेटर वाले POJOs
  • Kotlin — Gson @SerializedName के साथ data class घोषणाएँ
  • SwiftCodingKeys वाले Codable structs, जहाँ कीज़ को रीमैप किया जाता है
  • Dart — Flutter के लिए fromJson / toJson वाली क्लासेस
  • Scalacase class डेफिनिशन
  • PHP — कंस्ट्रक्टर वाली टाइप्ड क्लासेस जो किसी array से हाइड्रेट होती हैं

टाइप इंफरेंस कैसे काम करता है

यह टूल आपके JSON को स्कैन करता है और हर वैल्यू को उसकी उपयुक्त नेटिव टाइप से मैप करता है। स्ट्रिंग्स string / String / str बन जाती हैं; बूलियन्स उस भाषा की बूलियन टाइप से मैच होते हैं; और नंबर्स को समझदारी से अलग किया जाता है — पूरी संख्या इंटीजर टाइप बन जाती है (Go में int64, Rust में i64, Python में int) जबकि डेसीमल वैल्यू फ्लोट या डबल बन जाती है। नेस्टेड ऑब्जेक्ट्स को इनलाइन करने के बजाय अपनी अलग नामित टाइप में निकाला जाता है, इसलिए किसी यूज़र के अंदर मौजूद profile ऑब्जेक्ट एक अलग Profile डेफिनिशन बन जाता है जिसे पेरेंट रेफ़र करता है।

Arrays को उनके एलिमेंट टाइप का अनुमान लगाने के लिए जाँचा जाता है। ऑब्जेक्ट्स का array एक फिर से इस्तेमाल होने वाली आइटम टाइप बनाता है, और टूल उसे नाम देने के लिए फ़ील्ड नेम को सिंगुलर बना देता है — जैसे एक tags array उचित होने पर Tag एलिमेंट देता है। जब किसी array में मिश्रित टाइप्स हों, तो TypeScript आउटपुट इसे यूनियन के रूप में दिखाता है, जैसे (string | number)[], न कि किसी अस्पष्ट any पर वापस जाकर।

नामकरण हर भाषा के हिसाब से एडजस्ट किया जाता है: टाइप नेम्स को PascalCase में लिखा जाता है, और फ़ील्ड्स को हर भाषा के कन्वेंशन के अनुसार दोबारा लिखा जाता है (Rust और Python के लिए snake_case, बाकी में camelCase) जबकि असली JSON key को किसी टैग या rename एट्रिब्यूट में सुरक्षित रखा जाता है ताकि सीरियलाइज़ेशन सही तरीके से राउंड-ट्रिप हो सके।

ऑप्शंस, null हैंडलिंग और एक्सपोर्टिंग

एक रूट टाइप नाम फ़ील्ड आपको टॉप-लेवल टाइप को लेबल करने देता है — यह तब काम आता है जब जनरेट की गई फ़ाइल का नाम उसी पर आधारित हो। TypeScript के लिए आप interface और type आउटपुट के बीच स्विच कर सकते हैं। Optional nulls टॉगल यह नियंत्रित करता है कि null वैल्यूज़ को कैसे ट्रीट किया जाए: जब यह ऑन होता है, तो null फ़ील्ड को हर भाषा की पसंदीदा शैली में ऑप्शनल मार्क किया जाता है — TypeScript में ? मॉडिफायर, Python में Optional[...], Rust में Option<...>, Go में ,omitempty, और इसी तरह अन्य भाषाओं में।

कन्वर्ज़न लाइव है: जैसे-जैसे आप एडिट करते हैं आउटपुट अपडेट होता जाता है, और अगर इनपुट वैध JSON नहीं है तो टूल टूटी हुई टाइप्स बनाने के बजाय "Invalid JSON" मैसेज दिखा देता है। एक बार संतुष्ट हो जाने पर, रिज़ल्ट को क्लिपबोर्ड पर कॉपी करें या सही एक्सटेंशन (.ts, .go, .rs, .py, और बाकी) वाली फ़ाइल के रूप में डाउनलोड करें, जिसका नाम आपके रूट टाइप पर आधारित होगा। ऊपर अपना JSON पेस्ट करें, एक भाषा चुनें, और मैचिंग टाइप्स तुरंत सामने आ जाएँगी।