فك تشفير هياكل JSON الديناميكية المتداخلة في Go
في Go، قد يكون إلغاء تسلسل بيانات JSON باستخدام الهياكل الديناميكية المتداخلة أمرًا صعبًا. يوضح استعلام حديث هذه المشكلة:
{ "status": "OK", "status_code": 100, "sms": { "79607891234": { "status": "ERROR", "status_code": 203, "status_text": "Нет текста сообщения" }, "79035671233": { "status": "ERROR", "status_code": 203, "status_text": "Нет текста сообщения" }, "79105432212": { "status": "ERROR", "status_code": 203, "status_text": "Нет текста сообщения" } }, "balance": 2676.18 }
لإلغاء تسلسل هذه البيانات، نحتاج إلى استخدام خريطة لنمذجة القائمة الديناميكية لحالات الرسائل القصيرة. إليك الكود المعدل:
type SMSPhone struct { Status string `json:"status"` StatusCode int `json:"status_code"` StatusText string `json:"status_text"` } type SMSSendJSON struct { Status string `json:"status"` StatusCode int `json:"status_code"` Sms map[string]SMSPhone `json:"sms"` Balance float64 `json:"balance"` }
الآن، كشف تنظيم بيانات JSON باستخدام هذه البنية المعدلة:
var result SMSSendJSON if err := json.Unmarshal([]byte(src), &result); err != nil { panic(err) } fmt.Printf("% v", result)
سيتم إلغاء تسلسل الهياكل الديناميكية المتداخلة بشكل صحيح، مما يؤدي إلى:
{Status:OK StatusCode:100 Sms:map[79035671233:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79105432212:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79607891234:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения}] Balance:2676.18}
المفاتيح الموجودة في النتيجة.تتوافق خريطة الرسائل القصيرة مع أرقام الهواتف الديناميكية، وقيمها هي حالات الرسائل القصيرة المعنية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3