गो में डीपली नेस्टेड JSON कुंजी और मानों तक पहुंचना
जटिल JSON डेटा संरचनाओं के साथ काम करते समय, डीपली नेस्टेड मानों को पुनः प्राप्त करना चुनौतीपूर्ण हो सकता है अकेले मानक गो इंटरफ़ेस का उपयोग करना। इसे दूर करने के लिए, गो-सिंपलजसन पैकेज (github.com/bitly/go-simplejson) का उपयोग करने पर विचार करें।
यह पैकेज एक सरल सिंटैक्स के माध्यम से JSON डेटा को नेविगेट करने के लिए उपयोग में आसान एपीआई प्रदान करता है। यहां बताया गया है कि आप go-simplejson का उपयोग करके अपने दिए गए JSON में "समय" मानों तक कैसे पहुंच सकते हैं:
package main
import (
"encoding/json"
"fmt"
"github.com/bitly/go-simplejson"
)
func main() {
msg := `{"args":[{"time":"2013-05-21 16:57:17"}],"name":"send:time"}`
jsonBytes := []byte(msg)
js, err := simplejson.NewJson(jsonBytes)
if err != nil {
fmt.Println(err)
return
}
// Retrieve "time" values
timeValue, err := js.Get("args").GetIndex(0).Get("time").String()
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Retrieved time:", timeValue)
}
go-simplejson का उपयोग करके, आप नेस्टेड JSON संरचनाओं को आसानी से पार कर सकते हैं और Get, GetIndex, और String जैसी विधियों का उपयोग करके मान पुनर्प्राप्त कर सकते हैं।
जटिल डेटा संरचनाओं के लिए, आप अपनी परिभाषित भी कर सकते हैं JSON डेटा का प्रतिनिधित्व करने के लिए स्वयं की प्रकार की संरचना। उदाहरण के लिए, आप निम्नलिखित संरचना बना सकते हैं:
type TimeInfo struct {
Time string
}
type DataStruct struct {
Name string
Args []TimeInfo
}
इस संरचना में अपने JSON को अनमर्शल करने के लिए, आप निम्नलिखित कोड का उपयोग कर सकते हैं:
var dataStruct DataStruct
err = json.Unmarshal(jsonBytes, &dataStruct)
if err != nil {
fmt.Println(err)
return
}
यह दृष्टिकोण आपके JSON डेटा को प्रस्तुत करने का एक अधिक संरचित तरीका प्रदान करता है, जिससे इसके साथ काम करना और रखरखाव करना आसान हो जाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3