الوصول إلى مفاتيح وقيم JSON المتداخلة بعمق في Go
عند العمل مع هياكل بيانات JSON المعقدة، قد يكون من الصعب استرداد القيم المتداخلة بعمق باستخدام واجهات Go القياسية وحدها. للتغلب على ذلك، فكر في استخدام حزمة go-simplejson (github.com/bitly/go-simplejson).
توفر هذه الحزمة واجهة برمجة تطبيقات سهلة الاستخدام للتنقل بين بيانات JSON من خلال بناء جملة بسيط. إليك كيفية الوصول إلى قيم "الوقت" في JSON الخاص بك باستخدام go-simplejson:
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