Go Academy · पाठ

encoding/json पुनरावलोकन

JSON को marshal और unmarshal करें

पाठ 1, कुल 4 में से13 चरण

encoding/json पुनरावलोकन, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Go में JSON

JSON एपीआई के लिए सबसे सामान्य डेटा प्रारूप है। Go का मानक encoding/json पैकेज Go के मानों और JSON टेक्स्ट के बीच रूपांतरण करता है।

Marshal: Go से JSON

json.Marshal किसी Go मान को JSON बाइट स्लाइस में बदलता है। उसे प्रिंट करने के लिए स्ट्रिंग में बदलें।

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	data := map[string]int{"a": 1, "b": 2}
	b, _ := json.Marshal(data)
	fmt.Println(string(b))
}

संरचना को मार्शल करना

संरचनाएँ फ़ील्ड-दर-फ़ील्ड मार्शल होती हैं। निर्यातित फ़ील्ड JSON कुंजियाँ बन जाती हैं।

package main

import (
	"encoding/json"
	"fmt"
)

type User struct {
	Name string
	Age  int
}

func main() {
	b, _ := json.Marshal(User{"Ann", 30})
	fmt.Println(string(b))
}

Unmarshal: JSON से Go

json.Unmarshal JSON बाइट्स को Go मान में पार्स करता है। पॉइंटर दें, ताकि वह आपके चर में मान भर सके।

package main

import (
	"encoding/json"
	"fmt"
)

type User struct {
	Name string
	Age  int
}

func main() {
	var u User
	json.Unmarshal([]byte("{\"Name\":\"Bob\",\"Age\":25}"), &u)
	fmt.Println(u)
}

कुंजी नामों के लिए टैग

कुंजी नाम नियंत्रित करने के लिए json टैग का उपयोग करें, जैसा पहले बताया गया है। यहाँ Name JSON कुंजी name से मैप होता है।

package main

import (
	"encoding/json"
	"fmt"
)

type User struct {
	Name string "json:\"name\""
}

func main() {
	b, _ := json.Marshal(User{"Ann"})
	fmt.Println(string(b))
}

हमेशा त्रुटियों की जाँच करें

Marshal और Unmarshal दोनों एक त्रुटि लौटाते हैं। वास्तविक कोड में इसे कभी अनदेखा न करें; गलत JSON या असमर्थित प्रकार त्रुटियाँ उत्पन्न करते हैं।

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	var v int
	err := json.Unmarshal([]byte("not json"), &v)
	fmt.Println(err)
}

मानचित्रों में डिकोड करना

जब आपको पहले से डेटा की संरचना पता न हो, तो उसे map[string]interface{} में अनमार्शल करें।

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	var m map[string]interface{}
	json.Unmarshal([]byte("{\"x\":1,\"y\":\"hi\"}"), &m)
	fmt.Println(m["x"], m["y"])
}

स्लाइस और ऐरे

JSON ऐरे, Go स्लाइस में मैप होते हैं। किसी स्लाइस को मार्शल करने पर JSON ऐरे मिलता है।

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	b, _ := json.Marshal([]string{"a", "b", "c"})
	fmt.Println(string(b))
}

सुव्यवस्थित प्रिंटिंग

json.MarshalIndent मनुष्य के लिए पढ़ने योग्य आउटपुट बनाने हेतु इंडेंटेशन जोड़ता है।

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	data := map[string]int{"a": 1}
	b, _ := json.MarshalIndent(data, "", "  ")
	fmt.Println(string(b))
}

संख्याएँ float64 होती हैं

interface{} में डिकोड करते समय सभी JSON संख्याएँ Go में float64 बन जाती हैं। यदि आपको int चाहिए, तो स्पष्ट रूप से रूपांतरित करें।

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	var v interface{}
	json.Unmarshal([]byte("42"), &v)
	fmt.Printf("%T %v\n", v, v)
}

राउंड ट्रिप

आप डेटा की प्रतिलिपि JSON के माध्यम से करने के लिए पहले मार्शल और फिर अनमार्शल कर सकते हैं। समर्थित प्रकारों के लिए मान बिना बदलाव के वापस आते हैं।

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	orig := []int{1, 2, 3}
	b, _ := json.Marshal(orig)
	var back []int
	json.Unmarshal(b, &back)
	fmt.Println(back)
}

त्वरित जाँच

json.Unmarshal को पॉइंटर देना क्यों आवश्यक है?

पुनरावलोकन

encoding/json:

  • json.Marshal Go के मानों को JSON में बदलता है
  • json.Unmarshal JSON को पॉइंटर में पार्स करता है
  • टैग कुंजियों के नाम बदलते हैं; संख्याएँ interface{} में float64 के रूप में डिकोड होती हैं
  • लौटाई गई त्रुटि की हमेशा जाँच करें
शुरुआत निःशुल्क

एआई शिक्षक के साथ Go सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

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

क्या “encoding/json पुनरावलोकन” पाठ निःशुल्क है?

हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “encoding/json पुनरावलोकन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“encoding/json पुनरावलोकन” में मैं क्या सीखूँगा?

JSON को marshal और unmarshal करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“encoding/json पुनरावलोकन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. encoding/json पुनरावलोकन
  2. encoding/xml
  3. encoding/csv
  4. gob और बाइनरी एन्कोडिंग
← Go Academy पर वापस जाएँ