logo
GeekFormat

JSON से Go

JSON को बाईं ओर पेस्ट करें, दाईं ओर स्वचालित रूप से Go प्रोजेक्ट में सीधे उपयोग के लिए तैयार struct प्रकार परिभाषाएं जनरेट हो जाती हैं। शुद्ध ब्राउज़र स्थानीय प्रसंस्करण, कोई पंजीकरण या अपलोड आवश्यक नहीं।

संबंधित सुझाव

JSON से Go के बारे में: JSON को Go के मजबूत-प्रकार struct में बदलना

JSON से Go JSON प्रारूप डेटा को स्वचालित रूप से Go भाषा struct प्रकार परिभाषा में बदलने की प्रक्रिया है। JSON REST API, कॉन्फ़िगरेशन फ़ाइलों, संदेश कतारों और लॉग में सबसे सामान्य डेटा विनिमय प्रारूप है, जबकि Go एक मजबूत-प्रकार की भाषा है, विकास में अक्सर JSON की गतिशील संरचना को struct में मैप करने की आवश्यकता होती है ताकि encoding/json के साथ डीसीरियलाइज़ेशन किया जा सके। विशेष रूप से नेस्टेड ऑब्जेक्ट्स के लिए हाथ से struct लिखना आसानी से फ़ील्ड छोड़ सकता है या गलत प्रकार लिख सकता है, यह टूल दोहराए जाने वाले काम को स्वचालित करने के लिए है।

Go का struct एक मिश्रित डेटा प्रकार है, जिसे `type Name struct { ... }` के साथ घोषित किया जाता है। प्रत्येक फ़ील्ड में एक नाम और एक प्रकार होता है, फ़ील्ड नाम को अन्य पैकेज द्वारा एक्सेस करने के लिए बड़े अक्षर से शुरू होना चाहिए, जिसे 'निर्यात योग्य पहचानकर्ता' कहा जाता है। टूल स्वचालित रूप से JSON फ़ील्ड नामों को PascalCase निर्यात फ़ील्ड नामों में बदल देगा, उदाहरण के लिए `user_name` `UserName` में मैप होगा, और मूल कुंजी को json टैग में रखेगा।

इस टूल का मुख्य रूपांतरण ब्राउज़र के अंदर jsonFormat Web Worker द्वारा पूरा किया जाता है, जो quicktype-core के Go रेंडरर को कॉल करता है और `just-types` और `no-comments` विकल्प पास करता है। पूरी प्रक्रिया बैकएंड सेवा पर निर्भर नहीं करती है: इनपुट JSON को स्थानीय रूप से पार्स किया जाता है, प्रकारों का अनुमान लगाया जाता है, Go कोड जनरेट किया जाता है, और अंत में दाईं ओर के एडिटर में प्रस्तुत किया जाता है।

प्रकार अनुमान JSON से Go के सामान्य मैपिंग का पालन करता है: स्ट्रिंग `string` में मैप होते हैं, बूलियन `bool` में, पूर्णांक `int64` में, फ़्लोटिंग-पॉइंट `float64` में, एरे स्लाइस `[]T` में, ऑब्जेक्ट स्वतंत्र struct में, `null` `interface{}` में। नेस्टेड ऑब्जेक्ट्स को पुनरावर्ती रूप से संसाधित किया जाएगा, पदानुक्रम संबंध स्पष्ट रखते हुए।

हाथ से लिखने की तुलना में, टूल द्वारा जनरेट किया गया कोड एक 'चलने योग्य प्रारंभिक मसौदा' है। डेवलपर्स को आमतौर पर केवल रूट प्रकार का नाम, पैकेज का नाम, फ़ील्ड प्रकार की सटीकता (जैसे int64 को int में बदलना) और पॉइंटर प्रकारों का उपयोग करना है या नहीं, थोड़ा समायोजित करने की आवश्यकता होती है, फिर वे वास्तविक Go प्रोजेक्ट में डाल सकते हैं। एक-क्लिक कॉपी और model.go डाउनलोड के साथ, एकीकरण और मॉडलिंग चरण में दोहराए जाने वाले काम को काफी कम किया जा सकता है।

उपयोग के मामले

  • Go बैकएंड डेवलपमेंट REST API प्रतिक्रिया JSON को struct में बदलता है, json.Unmarshal के साथ Gin/Echo/Fiber हैंडलर के इनपुट पैरामीटर से सीधे बांधता है
  • फ्रंटएंड-बैकएंड एकीकरण के दौरान Postman से उदाहरण प्रतिक्रिया JSON प्राप्त करें, मैन्युअल फ़ील्ड टाइपिंग को कम करने के लिए त्वरित रूप से Go मॉडल जनरेट करें
  • तृतीय-पक्ष Webhook कॉलबैक को एकीकृत करते समय, फ़ील्ड-स्तरीय पहुंच और सत्यापन की सुविधा के लिए payload JSON को Go struct में बदलें
  • Viper/Consul/Nacos में JSON कॉन्फ़िगरेशन फ़ाइलों को Go प्रकारों में बदलें, map[string]interface{} की कमजोर-प्रकार की पहुंच को प्रतिस्थापित करें
  • माइक्रोसर्विस टीमें gRPC/HTTP इंटरफेस के अनुरोध/प्रतिक्रिया संरचनाओं को समान रूप से परिभाषित करती हैं, उदाहरण JSON को साझा Go प्रकारों में बदलती हैं
  • परीक्षण इंजीनियर JSON फिक्सचर को Go struct में बदलते हैं, testify के साथ दावा-संचालित परीक्षण करते हैं
  • ऑपरेशन्स कर्मचारी ELK/Fluentd द्वारा एकत्रित JSON लॉग पंक्तियों को पार्स करते हैं, struct जनरेट करने के बाद Go प्रोग्राम के साथ संरचित विश्लेषण करते हैं
  • क्रॉलर द्वारा JSON डेटा क्रॉल करने के बाद Go struct में बदलें, gorm/gen या ent के साथ डेटाबेस मॉडल जनरेट करें
  • IoT डिवाइस द्वारा रिपोर्ट किए गए JSON टेलीमेट्री डेटा को Go struct में बदलें, एज गेटवे प्रोग्राम में डीसीरियलाइज़ेशन और फ़िल्टरिंग करें
  • Kafka/NATS/RabbitMQ से खपत किए गए JSON संदेशों को Go प्रकारों में बदलें, ईवेंट-संचालित उपभोक्ता कार्यान्वयन के लिए
  • SDK डेवलपर्स सर्वर-साइड उदाहरण प्रतिक्रिया JSON को Go struct में बदलते हैं, उपयोगकर्ताओं के संदर्भ के लिए client लाइब्रेरी के types पैकेज में लिखते हैं
  • Swagger/OpenAPI दस्तावेज़ में उदाहरण JSON को Go struct में बदलें, इंटरफ़ेस दस्तावेज़ कोड उदाहरण के रूप में
  • छात्र या प्रशिक्षक Go पाठ्यक्रम में उदाहरण JSON को struct में बदलते हैं, Go के प्रकार सिस्टम और json टैग के उपयोग का प्रदर्शन करते हैं
  • डेटा माइग्रेशन स्क्रिप्ट MySQL/PostgreSQL द्वारा निर्यातित JSON पंक्तियों को Go struct में बदलती हैं, फ़ील्ड मैपिंग और प्रकार सत्यापन करती हैं
  • CI/CD कॉन्फ़िगरेशन JSON को Go struct में बदलें, Go में लिखे गए पाइपलाइन टूल में मजबूत-प्रकार कॉन्फ़िगरेशन पढ़ने की सुविधा के लिए
  • पुराने प्रोजेक्ट में map-आधारित गतिशील JSON पढ़ने के कोड को struct-आधारित मजबूत-प्रकार की पहुंच में पुनर्रचित करें

उपयोग कैसे करें

  1. बाईं ओर एडिटर में JSON सामग्री पेस्ट करें, या .json/.txt फ़ाइलें ड्रैग और ड्रॉप करें, या बिल्ट-इन डेटा लोड करने के लिए 'उदाहरण' पर क्लिक करें।
  2. लगभग 400ms प्रतीक्षा करें, टूल स्वचालित रूप से रूपांतरित हो जाएगा और दाईं ओर जनरेट किया गया Go struct कोड प्रदर्शित करेगा।
  3. यदि JSON त्रुटि की रिपोर्ट करता है, तो सामान्य प्रारूप त्रुटियों को स्वचालित रूप से ठीक करने के बाद जनरेशन जारी रखने के लिए 'JSON मरम्मत करें' बटन पर क्लिक करें।
  4. दाईं ओर के आउटपुट की जांच करें, Go प्रोजेक्ट में पेस्ट करने के लिए 'कॉपी' पर क्लिक करें, या model.go फ़ाइल के रूप में सहेजने के लिए 'डाउनलोड' पर क्लिक करें।

विशेषताएं

  • ब्राउज़र में स्थानीय Go struct जनरेशन: JSON पार्सिंग और Go कोड जनरेशन ब्राउज़र के अंदर पूरा होता है, मूल डेटा सर्वर पर अपलोड नहीं किया जाता
  • 400ms डिबाउंस स्वचालित रूपांतरण: पेस्ट या संशोधित करने के बाद मैन्युअल क्लिक की आवश्यकता नहीं, कॉपी करने योग्य Go कोड दाईं ओर रीयल-टाइम में आउटपुट होता है
  • स्मार्ट प्रकार अनुमान: स्ट्रिंग string में मैप होते हैं, बूलियन bool में, पूर्णांक int64 में, फ्लोट float64 में, एरे स्लाइस में, ऑब्जेक्ट struct में
  • नेस्टेड ऑब्जेक्ट स्वचालित विस्तार: स्वतंत्र struct प्रकारों को पुनरावर्ती रूप से जनरेट करें, JSON पदानुक्रम स्पष्ट रखें
  • स्वचालित रूप से json टैग जनरेट करें: फ़ील्ड में `json:"मूल_फ़ील्ड_नाम"` टैग होता है, encoding/json के साथ सीधे उपयोग के लिए तैयार
  • JSON त्रुटि एक-क्लिक मरम्मत: ट्रेलिंग अल्पविराम, सिंगल कोट्स, लापता कोट्स और अन्य सामान्य प्रारूप त्रुटियों को स्वचालित रूप से संभालता है, मरम्मत के बाद जनरेशन जारी रखता है
  • पेस्ट/अपलोड/उदाहरण तीन इनपुट का समर्थन करता है: .json/.txt फ़ाइलें ड्रैग और ड्रॉप कर सकते हैं, या बिल्ट-इन चीनी उदाहरण लोड कर सकते हैं
  • एक-क्लिक कॉपी और डाउनलोड: पूरे Go कोड को क्लिपबोर्ड पर कॉपी करें, या सीधे प्रोजेक्ट में डालने के लिए model.go फ़ाइल के रूप में डाउनलोड करें
  • localStorage इनपुट इतिहास: हाल के इनपुट को स्वचालित रूप से सहेजता है, रीफ्रेश या गलती से पेज बंद होने के बाद त्वरित पुनर्प्राप्ति
  • रिस्पॉन्सिव स्प्लिट-स्क्रीन एडिटर: बाएं/दाएं पैनल की चौड़ाई समायोज्य, डेस्कटॉप और मोबाइल दोनों पर आरामदायक इनपुट/आउटपुट दृश्य

कोड उदाहरण

जनरेट किए गए struct के साथ JSON डीसीरियलाइज़ करें

go

टूल द्वारा जनरेट किए गए struct को प्रोजेक्ट में कॉपी करने के बाद, encoding/json के साथ API प्रतिक्रिया को सीधे डीसीरियलाइज़ कर सकते हैं।

package main

import (
    "encoding/json"
    "fmt"
)

// 以下代码由 GeekFormat JSON 转 Go 工具生成
type User struct {
    ID      int64    `json:"id"`
    Name    string   `json:"name"`
    Tags    []string `json:"tags"`
    Address Address  `json:"address"`
}

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

func main() {
    data := []byte(`{
        "id": 1,
        "name": "Alice",
        "tags": ["admin", "dev"],
        "address": {"city": "Beijing"}
    }`)

    var u User
    if err := json.Unmarshal(data, &u); err != nil {
        panic(err)
    }

    fmt.Println(u.Name, u.Address.City)
}

संभावित रूप से लापता फ़ील्ड वाले JSON को संभालना

go

यदि API के कुछ फ़ील्ड मौजूद नहीं हो सकते हैं, तो संबंधित फ़ील्ड को पॉइंटर प्रकार में बदल सकते हैं या omitempty टैग के साथ उपयोग कर सकते हैं।

package main

import "encoding/json"

// 手动将字段改为指针,缺失时值为 nil
type User struct {
    ID      *int64  `json:"id,omitempty"`
    Name    *string `json:"name,omitempty"`
    Email   *string `json:"email,omitempty"`
}

func main() {
    data := []byte(`{"id": 1, "name": "Bob"}`)
    var u User
    json.Unmarshal(data, &u)
    if u.Email == nil {
        println("Email 字段缺失")
    }
}

सामान्य प्रश्न

JSON को Go struct में कैसे बदलें?

JSON सामग्री को बाईं ओर इनपुट बॉक्स में पेस्ट करें, टूल 400ms के भीतर स्वचालित रूप से रूपांतरित हो जाएगा और दाईं ओर जनरेट किया गया Go struct प्रदर्शित करेगा। आप .json/.txt फ़ाइलें ड्रैग और ड्रॉप भी कर सकते हैं, या बिल्ट-इन डेटा लोड करने के लिए 'उदाहरण' पर क्लिक कर सकते हैं। रूपांतरण पूरा होने के बाद, model.go फ़ाइल को एक क्लिक से कॉपी या डाउनलोड कर सकते हैं।

क्या जनरेट किए गए Go कोड में json टैग शामिल हैं?

हाँ। टूल quicktype-core पर आधारित Go कोड जनरेट करता है, और डिफ़ॉल्ट रूप से प्रत्येक struct फ़ील्ड में `json:"मूल_फ़ील्ड_नाम"` टैग होता है, जो encoding/json के Unmarshal/Marshal के साथ सीधे सीरियलाइज़ेशन और डीसीरियलाइज़ेशन के लिए सुविधाजनक है।

क्या JSON एरे Go स्लाइस में बदल जाएंगे?

हाँ। JSON एरे तत्व प्रकारों के आधार पर संबंधित स्लाइस प्रकार जनरेट करेंगे, उदाहरण के लिए `["a","b"]` `[]string` जनरेट करता है, `[1,2,3]` `[]int64` जनरेट करता है, `[{...},{...}]` `[]UserItem` जैसे कस्टम प्रकार जनरेट करता है।

क्या नेस्टेड ऑब्जेक्ट कई struct जनरेट करेंगे?

हाँ। प्रत्येक नेस्टेड ऑब्जेक्ट पुनरावर्ती रूप से एक स्वतंत्र struct प्रकार जनरेट करता है, जिसका नाम PascalCase में होता है। उदाहरण के लिए, `address` ऑब्जेक्ट `Address` struct जनरेट करता है, मुख्य struct में `Address Address` फ़ील्ड के माध्यम से संदर्भित किया जाता है।

null मान किस प्रकार का जनरेट करेंगे?

JSON में null मान आमतौर पर `interface{}` के रूप में अनुमानित किए जाते हैं, जो सुरक्षित फ़ॉलबैक प्रकार है। यदि आप फ़ील्ड के वास्तविक प्रकार को जानते हैं, तो JSON में एक उदाहरण मान जोड़ें, पुनः जनरेट करें, फिर मैन्युअल रूप से विशिष्ट प्रकार में समायोजित करें।

क्या मैं रूट struct का नाम कस्टमाइज़ कर सकता हूं?

हाँ। टूल डिफ़ॉल्ट रूप से रूट प्रकार नाम (जैसे User) का उपयोग करता है; सेटिंग्स में रूट प्रकार नाम को संशोधित करने के बाद, सभी संबंधित उप-प्रकार के नाम समकालिक रूप से अपडेट हो जाएंगे, डाउनलोड की गई फ़ाइल का नाम भी तदनुसार बदल जाएगा।

यदि JSON में प्रारूप त्रुटि हो तो क्या करें?

टूल स्वचालित रूप से JSON वैधता का पता लगाता है। यदि ट्रेलिंग अल्पविराम, सिंगल कोट्स, लापता कोट्स जैसी सामान्य त्रुटियां मौजूद हैं, तो 'JSON मरम्मत करें' बटन दिखाई देगा। क्लिक करने पर, टूल स्वचालित मरम्मत का प्रयास करेगा और Go struct पुनः जनरेट करेगा; मरम्मत विफल होने पर विशिष्ट त्रुटि स्थान इंगित किया जाएगा।

क्या डेटा सर्वर पर अपलोड किया जाएगा? क्या यह निजी और सुरक्षित है?

नहीं। सभी JSON पार्सिंग, प्रकार अनुमान और Go कोड जनरेशन आपके ब्राउज़र में Web Worker के माध्यम से पूरा होता है; इनपुट सामग्री और जनरेट किया गया कोड कभी भी किसी सर्वर पर अपलोड नहीं किया जाता या क्लाउड में रिकॉर्ड नहीं किया जाता। API कुंजियों, टोकन या व्यावसायिक डेटा वाले संवेदनशील JSON का सुरक्षित रूप से उपयोग किया जा सकता है।

क्या जनरेट किया गया कोड सीधे Go प्रोजेक्ट में रखा जा सकता है?

हाँ। जनरेट किया गया कोड json टैग के साथ मानक Go struct है, सीधे प्रोजेक्ट के types/ या models/ निर्देशिका में कॉपी किया जा सकता है। हम प्रोजेक्ट नामकरण सम्मेलनों के अनुसार प्रकार के नाम और पैकेज के नाम को थोड़ा समायोजित करने की सलाह देते हैं।

क्या यह टूल मुफ्त है? क्या मुझे पंजीकरण करने की आवश्यकता है?

पूरी तरह से मुफ्त, कोई पंजीकरण या लॉगिन आवश्यक नहीं। पेज खोलें और तुरंत उपयोग करें, कोई कार्यक्षमता सीमाएं, वॉटरमार्क या जबरन लॉगिन नहीं।

किस आकार की JSON फ़ाइलों का समर्थन करता है?

टूल की कोई सख्त फ़ाइल आकार सीमा नहीं है, लेकिन रूपांतरण गति और रेंडरिंग प्रदर्शन ब्राउज़र और डिवाइस प्रदर्शन पर निर्भर करता है। हम सर्वोत्तम अनुभव के लिए 1MB के भीतर JSON संसाधित करने की सलाह देते हैं; अत्यधिक बड़े JSON के लिए पहले JSON फ़ॉर्मेटर या स्प्लिट टूल से संसाधित करें।

क्या संख्यात्मक प्रकार समान रूप से float64 जनरेट करेंगे?

नहीं। टूल पूर्णांक और फ़्लोटिंग-पॉइंट संख्याओं को अलग करता है: पूर्णांक फ़ील्ड int64 जनरेट करते हैं, फ़्लोटिंग-पॉइंट फ़ील्ड float64 जनरेट करते हैं। यदि आप int, uint64 जैसे अधिक विशिष्ट प्रकार पसंद करते हैं, तो जनरेशन के बाद मैन्युअल रूप से बदलें।

समस्या निवारण

दाईं ओर संकेत 'कृपया JSON डेटा दर्ज करें'

बाईं ओर इनपुट बॉक्स खाली है या केवल रिक्त स्थान हैं। कृपया मान्य JSON पेस्ट करें, या डेटा लोड करने के लिए 'उदाहरण' पर क्लिक करें, या .json/.txt फ़ाइलें ड्रैग और ड्रॉप करें।

JSON पार्सिंग विफलता का संकेत लेकिन त्रुटि स्थान नहीं मिल रहा

इनपुट बॉक्स के नीचे 'JSON मरम्मत करें' बटन पर क्लिक करें, टूल स्वचालित रूप से ट्रेलिंग अल्पविराम, सिंगल कोट्स, लापता कोट्स, JS-शैली ऑब्जेक्ट आदि समस्याओं को ठीक करने का प्रयास करेगा। मरम्मत के बाद संशोधित परिणाम हाइलाइट किया जाएगा।

जनरेट किए गए फ़ील्ड नाम Go नामकरण सम्मेलनों के अनुरूप नहीं हैं

टूल JSON key के अनुसार PascalCase फ़ील्ड नाम जनरेट करता है। यदि key में चीनी या विशेष वर्ण शामिल हैं, तो एस्केप किए गए फ़ील्ड नाम जनरेट हो सकते हैं। JSON key को अंग्रेजी लोअरकेस या snake_case में बदलने की सलाह दी जाती है, जनरेशन के बाद समान रूप से समायोजित करें।

null फ़ील्ड ने interface{} जनरेट किया, विशिष्ट प्रकार में बदलना चाहते हैं

चूंकि null विशिष्ट प्रकार का अनुमान नहीं लगा सकता है, टूल interface{} का उपयोग फ़ॉलबैक के रूप में करता है। आप स्रोत JSON में उस फ़ील्ड को एक उदाहरण मान (जैसे "" या 0) दे सकते हैं, पुनः जनरेट करने के बाद प्रकार को string/int64 आदि वास्तविक प्रकार में बदल सकते हैं।

बड़े JSON रूपांतरण के बाद पेज अटक जाता है

अत्यधिक बड़े JSON और कई struct का ब्राउज़र रेंडरिंग अधिक मेमोरी की खपत करता है। सुझाव: ① केवल महत्वपूर्ण फ़ील्ड वाला उदाहरण JSON रखें; ② कई ऑब्जेक्ट में विभाजित करके अलग-अलग रूपांतरित करें; ③ पेज के अन्य मेमोरी-खपत वाले टैब बंद करें।

एरे तत्व प्रकार []interface{} के रूप में अनुमानित

जब एरे खाली [] है या तत्व प्रकार असंगत हैं, तो टूल interface{} का उपयोग फ़ॉलबैक के रूप में करेगा। समान प्रकार के उदाहरण तत्व जोड़ सकते हैं, या जनरेशन के बाद मैन्युअल रूप से प्रकार को []string, []int64 आदि विशिष्ट स्लाइस प्रकार में बदल सकते हैं।

शब्दकोश

struct
Go का मिश्रित डेटा प्रकार, एक से अधिक फ़ील्ड को एक प्रकार में संयोजित करने के लिए उपयोग किया जाता है। इस टूल द्वारा जनरेट किए गए Go कोड का मुख्य भाग कई struct परिभाषाएं हैं।
slice
Go का गतिशील एरे प्रकार, वाक्यविन्यास []T है। यह टूल JSON एरे को संबंधित स्लाइस में मैप करेगा, जैसे []string, []int64, []UserItem।
json tag
Go struct फ़ील्ड के बाद बैकटिक स्ट्रिंग, जैसे `json:"user_name"`, encoding/json सीरियलाइज़ेशन/डीसीरियलाइज़ेशन के दौरान फ़ील्ड नाम निर्दिष्ट करने के लिए उपयोग किया जाता है। यह टूल स्वचालित रूप से यह टैग जनरेट करेगा।
interface{}
Go का खाली इंटरफ़ेस प्रकार, किसी भी मान का प्रतिनिधित्व कर सकता है। यह टूल JSON null का सामना करने या प्रकार निर्धारित नहीं कर पाने पर सुरक्षित फ़ॉलबैक के रूप में interface{} का उपयोग करेगा।
PascalCase
प्रत्येक शब्द के पहले अक्षर को बड़ा करने की नामकरण शैली, जैसे UserName, AddressCity। Go को निर्यात योग्य फ़ील्ड बड़े अक्षर से शुरू होने चाहिए, इसलिए यह टूल स्वचालित रूप से JSON फ़ील्ड नामों को PascalCase में बदल देगा।
encoding/json
Go मानक पुस्तकालय में JSON एन्कोडिंग/डिकोडिंग पैकेज। json टैग के साथ इस टूल द्वारा जनरेट किए गए struct का उपयोग json.Unmarshal और json.Marshal के साथ सीधे किया जा सकता है।
unmarshal
JSON बाइट स्ट्रीम को Go मान में पार्स करने की प्रक्रिया। struct जनरेट करने के बाद, सबसे सामान्य उपयोग json.Unmarshal(data, &user) को कॉल करना है।
omitempty
Go json tag का सामान्य विकल्प, जैसे `json:"name,omitempty"`, इंगित करता है कि फ़ील्ड शून्य मान होने पर आउटपुट छोड़ दें। यह टूल डिफ़ॉल्ट रूप से omitempty जनरेट नहीं करता है, जनरेशन के बाद आवश्यकतानुसार मैन्युअल रूप से जोड़ा जा सकता है।

JSON प्रकार से Go प्रकार मैपिंग त्वरित संदर्भ तालिका

यह टूल JSON मान के प्रकार के आधार पर स्वचालित रूप से संबंधित Go प्रकार का अनुमान लगाता है, सामान्य मैपिंग संबंध निम्नानुसार हैं:

JSON मान उदाहरणजनरेट किया गया Go प्रकारविवरण
"hello"stringस्ट्रिंग सीधे मैप
true / falseboolबूलियन मान
42int64दशमलव बिंदु के बिना संख्या
3.14float64दशमलव बिंदु वाली संख्या
nullinterface{}विशिष्ट प्रकार का अनुमान नहीं लगा पाने पर सुरक्षित फ़ॉलबैक
["a","b"][]stringस्ट्रिंग एरे
[1,2,3][]int64पूर्णांक एरे
[{...},{...}][]UserItemऑब्जेक्ट एरे, तत्व प्रकार पुनरावर्ती रूप से जनरेट
{"id":1}Userऑब्जेक्ट स्वतंत्र struct जनरेट करता है

सामान्य Go संख्या प्रकार चयन सुझाव

टूल डिफ़ॉल्ट रूप से int64 और float64 का उपयोग करता है, वास्तविक प्रोजेक्ट में आवश्यकतानुसार समायोजित किया जा सकता है:

परिदृश्यअनुशंसित प्रकारकारण
सामान्य पूर्णांक ID, गिनतीint64टूल डिफ़ॉल्ट के अनुरूप, अधिकांश JSON संख्याओं के साथ संगत
डेटाबेस स्वतः वृद्धि प्राथमिक कुंजी सकारात्मक ज्ञातuint64ऋणात्मक संख्याओं से बचें, शब्दार्थ स्पष्ट
32-बिट सिस्टम या स्पष्ट छोटी सीमा पूर्णांकint32मेमोरी उपयोग कम करें
मूल्य, अक्षांश/देशांतर, वैज्ञानिक गणनाfloat64टूल डिफ़ॉल्ट के अनुरूप, मानक फ़्लोटिंग-पॉइंट सटीकता
सटीक मुद्रा गणनाdecimal.Decimal / intfloat64 में सटीकता जोखिम है, shopspring/decimal या सेंट-इकाई int का उपयोग करने की सलाह दी जाती है

Privacy & Security

इस JSON से Go टूल की सभी प्रक्रिया पूरी तरह से आपके ब्राउज़र में स्थानीय रूप से पूरी होती है: JSON पार्सिंग, प्रकार अनुमान, Go कोड जनरेशन सभी Web Worker के माध्यम से क्लाइंट-साइड पर निष्पादित होते हैं, इनपुट JSON सामग्री, अपलोड की गई फ़ाइलें और जनरेट किया गया Go कोड किसी भी सर्वर पर अपलोड नहीं किया जाता, न ही क्लाउड में रिकॉर्ड, कैश या संग्रहीत किया जाता है। पेज बंद करने या रीफ्रेश करने के बाद, सभी इनपुट और आउटपुट सामग्री स्वचालित रूप से मेमोरी से साफ हो जाती है, केवल localStorage आपके हाल के इनपुट इतिहास को बनाए रखेगा (किसी भी समय साफ किया जा सकता है)। API कुंजियों, टोकन, संवेदनशील व्यावसायिक डेटा वाले JSON को संसाधित करने के लिए उपयुक्त।