डेवलपर / JSON

JSON से Go Struct

JSON सैंपल पेस्ट करें और exported फ़ील्ड नामों, Go linters के अनुसार initialisms और json टैग वाली Go struct definitions पाएं—कोड में पेस्ट करने के लिए तैयार।

JSON से Go Struct: यह कन्वर्टर आपके ब्राउज़र में JSON पढ़ता है और हर object के लिए एक struct लिखता है। Keys, golint की सलाह के अनुसार, ID, URL और HTTP जैसे initialisms को बड़े अक्षरों में रखते हुए exported CamelCase नामों में बदल जाती हैं। हर फ़ील्ड अपने मूल key को json टैग में रखता है और कोड को gofmt के फ़ॉर्मैट में सजाया जाता है। किसी array में मौजूद objects को मिला दिया जाता है, इसलिए कुछ objects में गायब key को omitempty मिलता है और जो key कभी-कभी null होती है, वह pointer बन जाती है। पूर्णांक int64 बनते हैं, जब तक उसी स्थान पर decimal न हो; ऐसी स्थिति में वे float64 बनते हैं। यह आपके ब्राउज़र में 100% स्थानीय रूप से चलता है और सर्वर पर कोई फ़ाइल अपलोड नहीं होती।

रन
आपके ब्राउज़र में
लागत
मुफ़्त · साइन अप की ज़रूरत नहीं
उपलब्धता
इस्तेमाल के लिए तैयार
JSON से Go structलोकल प्रोसेसिंग

पूरी तरह आपके ब्राउज़र में चलता है

आगे बढ़ें

type User struct {
	ID        int64    `json:"id"`
	UserName  string   `json:"user_name"`
	AvatarURL string   `json:"avatar_url"`
	Score     float64  `json:"score"`
	Tags      []string `json:"tags"`
	Address   Address  `json:"address"`
}

type Address struct {
	City    string `json:"city"`
	ZipCode string `json:"zip_code"`
}

किसी array में कुछ objects से गायब keys को omitempty मिलता है; जो keys कभी-कभी null होती हैं, वे pointers बन जाती हैं। types को अपने API के दस्तावेज़ीकरण से मिलाएँ: sample केवल उसमें मौजूद चीज़ें दिखाता है।

नमूने से type तक

Go, encoding/json की मदद से JSON को structs में बदलता है। यह हर key को उसके json tag के आधार पर field से मिलाता है, और tag न होने पर case की अनदेखी करके नाम के आधार पर मिलाता है। केवल exported fields, यानी capital letter से शुरू होने वाले fields, भरे जाते हैं। इसी कारण यहाँ हर field का पहला अक्षर बड़ा है और उसके tag में मूल key बनी रहती है।

एक sample केवल वही दिखाता है जो उसमें मौजूद है। यदि users की सूची में किसी एक user का email न हो, तो converter समझता है कि email optional है; एक अकेला object यह नहीं बता सकता। जब आपके पास कई representative objects हों, तो उन्हें array में पेस्ट करें और result को API के documentation से जाँचें। लंबी response की संरचना पहले समझने में JSON फ़ॉर्मैटर मदद करता है।

अन्य भाषाएँ और schemas

इसी sample को JSON to TypeScript converter की मदद से TypeScript interfaces में बदला जा सकता है, ताकि front end उसी API को पढ़ सके। इसे boundary पर payloads validate करने के लिए JSON Schema में भी बदला जा सकता है।

इस्तेमाल करने का तरीका

  1. JSON object या array पेस्ट करें, जैसे API response।
  2. ऊपरी स्तर के type का नाम दें और अलग या nested structs चुनें।
  3. Go code कॉपी करें।

गोपनीयता और सीमाएँ

आपका JSON आपके ब्राउज़र में कन्वर्ट होता है और कभी अपलोड नहीं किया जाता।

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

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

user_id को UserId के बजाय UserID क्यों कहा जाता है?

Go शैली में initialisms को एक ही case में लिखा जाता है, इसलिए UserID, APIKey और AvatarURL। यह कन्वर्टर golint के initialisms की सूची इस्तेमाल करता है; इसी linter ने इस नियम को लोकप्रिय बनाया।

किसी फ़ील्ड को omitempty या pointer कब मिलता है?

जब सैंपल objects का array हो और कुछ objects में कोई key गायब हो, तो उस फ़ील्ड को omitempty मिलता है, ताकि खाली होने पर marshalling के दौरान वह बाहर रह जाए। जब कुछ objects में कोई key null हो, तो फ़ील्ड pointer बन जाता है, जिससे nil, null का मतलब रख सकता है। आप हर फ़ील्ड में omitempty भी जोड़ सकते हैं।

int64 और float64 क्यों?

JSON में number का केवल एक type होता है। बिना decimal point लिखी गई value int64 बनती है और fraction वाली कोई भी value float64 बनती है। अगर कोई ID 2^53 से बड़ी हो सकती है या वास्तव में छिपे रूप में string हो, तो type को हाथ से बदलें: सैंपल केवल उसमें मौजूद values दिखाता है।

null या empty arrays का क्या होता है?

जब कोई जानकारी उपलब्ध न हो, हमेशा null रहने वाले फ़ील्ड या empty array को any (interface{}) type मिलता है, जो किसी भी value को स्वीकार करता है। जानकारी मिलने पर इसे असली type से बदलें।

मुफ़्त टूल · आपके ब्राउज़र में बार चलता है · अकाउंट की ज़रूरत नहीं