जनरेटर और कोड संरचना टूल

JSON से Go स्ट्रक्ट

JSON नमूने को Go struct में बदलें और मूल फ़ील्ड से संबंध बनाए रखें।

JSON इनपुट

तैयार कोड

एक्सपोर्ट किए गए फ़ील्ड, json tags, पॉइंटर, नेस्टेड ऑब्जेक्ट और स्लाइस वाले Go struct बनाएँ।

JSON विश्लेषण और Go कोड निर्माण ब्राउज़र में होता है। सर्वर या ऑनलाइन जनरेटर को कुछ नहीं भेजा जाता।

यह टूल क्या करता है

यह टूल Go 1.18+ के लिए नाम वाले स्ट्रक्ट और स्लाइस प्रकार बनाता है। फ़ील्ड मान्य एक्सपोर्ट किए गए नाम लेते हैं और json tag जहाँ संभव हो मूल key रखता है। विशेष key के लिए encoding/json की पाबंदियाँ जाँचें।

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

  1. JSON लिखें। कई ऑब्जेक्ट नमूनों से गायब फ़ील्ड पहचानने में मदद मिलती है।
  2. मूल स्ट्रक्ट का नाम तय करें।
  3. «बदलें» दबाएँ और एक्सपोर्ट किए गए फ़ील्ड, json tag, null स्वीकार करने वाले पॉइंटर और स्लाइस जाँचें।
  4. कोड कॉपी या डाउनलोड करें, फिर लक्षित पैकेज में जोड़कर प्रोजेक्ट के अनुसार बदलें।

उदाहरण

  • {"first_name":"Tom"}: FirstName फ़ील्ड बनता है और json:"first_name" बना रहता है।
  • [{"id":1,"name":"Tom"},{"id":2}]: name वैकल्पिक है; *string और omitempty इस्तेमाल हो सकते हैं।
  • {"matrix":[[1,2],[3,4]]}: अनुमानित प्रकार [][]int64 है।

प्रकार बदलने के नियम

स्ट्रिंग string, सुरक्षित पूर्णांक int64, दशमलव और मिश्रित संख्याएँ float64, बूलियन bool और ऐरे []T बनते हैं। ज्ञात प्रकार null या गायब हो तो उपयुक्त पॉइंटर बनता है; गायब फ़ील्ड में omitempty जुड़ता है। अज्ञात, केवल null या असंगत मिश्रित मान any बनते हैं। लक्ष्य Go 1.18+ है। फ़ील्ड एक्सपोर्ट होते हैं, स्ट्रक्ट नाम स्थिर और टकराव-मुक्त रहते हैं और tag मान्य Go स्ट्रिंग की तरह एस्केप होते हैं। encoding/json में कॉमा, माइनस और कुछ नियंत्रण वर्णों वाली key का विशेष अर्थ है; सीधे वापस मैप न हो सकने वाली key के लिए टिप्पणी मिलती है। मान्य syntax का अर्थ हर JSON key की स्वचालित मैपिंग नहीं है। सीमाएँ: इनपुट और आउटपुट प्रत्येक 1 MiB, 64 स्तर, 100000 नोड, 5000 संयुक्त फ़ील्ड और 256 प्रकार। असुरक्षित पूर्णांक, गैर-परिमित मान और शून्य तक अंडरफ़्लो अस्वीकार होते हैं; अन्य दशमलव ब्राउज़र की परिशुद्धता पर निर्भर हैं।

आम उपयोग

  • सेवा प्रतिक्रिया के नमूनों के लिए Go प्रकार बनाएँ।
  • वैकल्पिक या null वाले फ़ील्ड में पॉइंटर की ज़रूरत जाँचें।
  • नेस्टेड JSON के लिए नाम वाले स्ट्रक्ट और स्लाइस बनाएँ।

गोपनीयता

JSON विश्लेषण और Go कोड निर्माण ब्राउज़र में होता है। सर्वर या ऑनलाइन जनरेटर को कुछ नहीं भेजा जाता।

परिणाम रखना चाहते हैं, तो पेज छोड़ने से पहले उन्हें कॉपी या डाउनलोड कर लें।

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

फ़ील्ड नाम बड़े अक्षर से क्यों शुरू होते हैं?

Go के encoding/json को सामान्यतः एक्सपोर्ट किए गए फ़ील्ड चाहिए। बड़ा पहला अक्षर पैकेज के बाहर और मानक लाइब्रेरी से पहुँच देता है।

json tag क्या करता है?

यह स्ट्रक्ट फ़ील्ड को JSON key से जोड़ता है, ताकि नाम बदलने के बाद सामान्य मूल key न खोए।

null कैसे संभाला जाता है?

ज्ञात प्रकार के साथ null मिले तो पॉइंटर बन सकता है। केवल null होने पर any जैसा सावधानीपूर्ण प्रकार लिया जाता है।

any क्यों इस्तेमाल होता है?

लक्ष्य Go 1.18+ है। any, interface{} का दूसरा नाम है और नमूने से प्रकार तय न हो सके तो उपयोगी है।

क्या कोई भी JSON key सीधे सही tag बन सकती है?

हमेशा नहीं। Go tag स्ट्रिंग एस्केप हो सकती है, पर encoding/json कॉमा और माइनस जैसे चिह्न अलग समझता है। ऐसी key के लिए अपनी मैपिंग बनाएँ और दिए गए संदेश देखें।

डेवलपर टूल की सूची पर लौटें