إلغاء تنظيم مخصص مع تقسيم السلسلة في Go
عند التعامل مع بيانات JSON، غالبًا ما تنشأ الحاجة إلى تحويل أو تخصيص عملية إلغاء التنظيم لأهداف محددة أنواع البيانات. في هذه الحالة، نريد تقسيم سلسلة JSON التي تحتوي على قيم مفصولة بفواصل إلى شريحة سلسلة [] أثناء إلغاء التنظيم.
ولتحقيق ذلك، فلننفذ أداة إلغاء تنظيم مخصصة لنوع السلسلة []:
type strslice []string
func (ss *strslice) UnmarshalJSON(data []byte) error {
var s string
if err := json.Unmarshal(data, &s); err != nil {
return err
}
*ss = strings.Split(s, "-")
return nil
}
يأخذ برنامج إلغاء التنظيم المخصص هذا بيانات JSON الأولية كمدخلات ويحولها إلى شريحة من السلاسل عن طريق تقسيمها على المحدد المحدد ("-" في هذه الحالة).
في النسخة الأصلية لدينا struct، يمكننا الآن استخدام هذا النوع المخصص لحقل الموضوعات:
type Student struct {
StudentNumber int `json:"student_number"`
Name string `json:"name"`
Subjects strslice `json:"subjects"`
}
يسمح لنا هذا بإلغاء تنظيم بيانات JSON مباشرة في البنية، مع تقسيم حقل الموضوعات تلقائيًا إلى سلاسل فردية:
json := `{"student_number":1234567, "name":"John Doe", "subjects":"Chemistry-Maths-History-Geography"}`
var s Student
if err := json.Unmarshal([]byte(json), &s); err != nil {
panic(err)
}
fmt.Println(s) // Output: {1234567 John Doe [Chemistry Maths History Geography]}
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3