我是 Go 的新手,正在構(gòu)建一個請求解碼器。請求采用 JSON 格式,我們將其解碼為 map[string]interface{}。然后我們將該對象數(shù)據(jù)傳遞給我們自己的 ProcessRequest 結(jié)構(gòu)進行解碼。正如我所說,我是新手,所以我在以前開發(fā)人員編寫的代碼的類似部分中重復(fù)使用了一些邏輯。本質(zhì)上,我們正在檢查地圖中是否有必要的部分,然后設(shè)置并返回它們。有人可以向我解釋為什么我會收到標題錯誤嗎?我是否必須將項目一直設(shè)置為不再有任何嵌套的基本結(jié)構(gòu)?有沒有更好的方法來完成我想要的?這是代碼和相關(guān)結(jié)構(gòu)。它突出顯示了 model.ProcessRequest 返回時的錯誤。蒂亞type ProcessRequest struct { RequestID string Message *message.Message Rule *Rule Options *ProcessOptions //TODO: Context EvaluatorContext //TODO: Links}type Message struct { ID int Key string Source string Headers *HeaderSet Categories *CategorySet Properties *PropertySet Streams *StreamSet}type RuleAction struct { Name string Expression map[string]interface{}}type RuleLink struct { LinkID int Condition map[string]interface{} TargetRuleID int}type Rule struct { Name string Code string Actions []RuleAction Links []RuleLink}type object = map[string]interface{}func DecodeProcessRequest(dataObject map[string]interface{}) (*model.ProcessRequest, error) { var ( requestID string message *message.Message rule *model.Rule options *model.ProcessOptions err error ) if reqIDSrc, ok := dataObject["requestId"]; ok { if requestID, err = converter.ToString(reqIDSrc); err != nil { return nil, errors.Wrapf(err, "Error reading property 'requestID'") } if requestID == "" { return nil, errors.Errorf("Property 'requestID' is an empty string") } } else { return nil, errors.Errorf("Missing required property 'requestID'") }
1 回答

12345678_0001
TA貢獻1802條經(jīng)驗 獲得超5個贊
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消