Go में JSON के साथ काम करना: शुरुआती लोगों के लिए पार्सिंग और सीरियलाइज़ेशन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go में JSON के साथ काम करने का परिचय

\n\n

JSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो वेब डेवलपमेंट, API और कॉन्फ़िगरेशन फ़ाइलों में व्यापक रूप से उपयोग किया जाता है। Go भाषा (Golang) एक अंतर्निहित पैकेज encoding/json प्रदान करती है, जो डेटा के पार्सिंग (डिकोडिंग) और सीरियलाइज़ेशन (एन्कोडिंग) को आसानी से करने की अनुमति देता है। इस लेख में, हम व्यावहारिक उदाहरणों के साथ Go में JSON के साथ काम करने की मूल बातें समझेंगे, जो शुरुआती डेवलपर्स के लिए भी समझने योग्य हैं।

\n\n

encoding/json पैकेज की मूल बातें

\n\n

पैकेज encoding/json Go की एक मानक लाइब्रेरी है जिसे अतिरिक्त इंस्टॉलेशन की आवश्यकता नहीं है। इस पैकेज में दो मुख्य उपकरण हैं - फ़ंक्शन json.Marshal (सीरियलाइज़ेशन) और json.Unmarshal (डीसीरियलाइज़ेशन)।

\n\n

संरचनाएं और JSON टैग

\n\n

Go में, डेटा आमतौर पर संरचनाओं (struct) के रूप में दर्शाया जाता है। JSON में फ़ील्ड नामों को प्रबंधित करने के लिए टैग का उपयोग किया जाता है। आइए एक सरल उदाहरण देखें:

\n\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n)\n\n// JSON टैग के साथ संरचना परिभाषित करें\ntype Person struct {\n    Name    string `json:"name"`\n    Age     int    `json:"age"`\n    Email   string `json:"email,omitempty"`\n    IsAdmin bool   `json:"is_admin"`\n}\n\nfunc main() {\n    // संरचना का एक उदाहरण बनाएँ\n    person := Person{\n        Name:    "इवान पेत्रोव",\n        Age:     30,\n        Email:   "ivan@example.com",\n        IsAdmin: true,\n    }\n    \n    // JSON में सीरियलाइज़ करें\n    jsonData, _ := json.Marshal(person)\n    fmt.Println(string(jsonData))\n}\n
\n\n

निष्पादन परिणाम:

\n\n
{"name":"इवान पेत्रोव","age":30,"email":"ivan@example.com","is_admin":true}
\n\n

महत्वपूर्ण बिंदु:

\n
    \n
  • टैग json:"name" बताता है कि फ़ील्ड JSON में क्या नाम से जाना जाएगा
  • \n
  • विकल्प omitempty खाली फ़ील्ड (शून्य मान) को छोड़ देता है
  • \n
  • संरचना के फ़ील्ड निर्यात योग्य होने चाहिए (बड़े अक्षर से शुरू होने चाहिए)
  • \n
\n\n

JSON में डेटा का सीरियलाइज़ेशन (Marshal)

\n\n

सीरियलाइज़ेशन Go संरचना या अन्य डेटा प्रकार को JSON स्ट्रिंग में बदलने की प्रक्रिया है। फ़ंक्शन json.Marshal बाइट्स का एक स्लाइस ([]byte) और एक त्रुटि लौटाता है।

\n\n

विभिन्न प्रकारों के सीरियलाइज़ेशन के उदाहरण

\n\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n)\n\ntype Product struct {\n    ID       int      `json:"id"`\n    Name     string   `json:"name"`\n    Price    float64  `json:"price"`\n    Tags     []string `json:"tags,omitempty"`\n    InStock  bool     `json:"in_stock"`\n}\n\nfunc main() {\n    // संरचना का सीरियलाइज़ेशन\n    product := Product{\n        ID:      101,\n        Name:    "लैपटॉप",\n        Price:   79999.99,\n        Tags:    []string{"इलेक्ट्रॉनिक्स", "लैपटॉप"}, \n        InStock: true,\n    }\n    \n    // इंडेंटेशन के साथ सुंदर आउटपुट\n    jsonData, _ := json.MarshalIndent(product, "", "  ")\n    fmt.Println(string(jsonData))\n    \n    // संरचनाओं के स्लाइस का सीरियलाइज़ेशन\n    products := []Product{\n        {ID: 1, Name: "माउस", Price: 1500.00, InStock: true},\n        {ID: 2, Name: "कीबोर्ड", Price: 3500.00, InStock: false},\n    }\n    \n    jsonArray, _ := json.Marshal(products)\n    fmt.Println(string(jsonArray))\n}\n
\n\n

परिणाम:

\n\n
{\n  "id": 101,\n  "name": "लैपटॉप",\n  "price": 79999.99,\n  "tags": [\n    "इलेक्ट्रॉनिक्स",\n    "लैपटॉप"\n  ],\n  "in_stock": true\n}\n[{"id":1,"name":"माउस","price":1500,"in_stock":true},{"id":2,"name":"कीबोर्ड","price":3500,"in_stock":false}]
\n\n

Go में JSON का पार्सिंग (Unmarshal)

\n\n

पार्सिंग उलटी प्रक्रिया है: JSON स्ट्रिंग को Go संरचना में बदलना। इसके लिए फ़ंक्शन json.Unmarshal का उपयोग किया जाता है।

\n\n

पार्सिंग का मूल उदाहरण

\n\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n    "log"\n)\n\ntype User struct {\n    Username string `json:"username"`\n    Age                

ब्लॉग

पुस्तक अनुशंसाएँ